晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。 林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。 见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝) 既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。 南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。
|
Server : Apache System : Linux srv.rainic.com 4.18.0-553.47.1.el8_10.x86_64 #1 SMP Wed Apr 2 05:45:37 EDT 2025 x86_64 User : rainic ( 1014) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/akaindir/public_html/crm/include/Zend/Oauth/ |
Upload File : |
<?php
/**
* Zend Framework
*
* LICENSE
*
* This source file is subject to the new BSD license that is bundled
* with this package in the file LICENSE.txt.
* It is also available through the world-wide-web at this URL:
* http://framework.zend.com/license/new-bsd
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@zend.com so we can send you a copy immediately.
*
* @category Zend
* @package Zend_Oauth
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
* @version $Id: Client.php 24593 2012-01-05 20:35:02Z matthew $
*/
/** Zend_Oauth */
require_once 'Zend/Oauth.php';
/** Zend_Http_Client */
require_once 'Zend/Http/Client.php';
/** Zend_Oauth_Http_Utility */
require_once 'Zend/Oauth/Http/Utility.php';
/** Zend_Oauth_Config */
require_once 'Zend/Oauth/Config.php';
/**
* @category Zend
* @package Zend_Oauth
* @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Oauth_Client extends Zend_Http_Client
{
/**
* Flag to indicate that the client has detected the server as supporting
* OAuth 1.0a
*/
public static $supportsRevisionA = false;
/**
* Holds the current OAuth Configuration set encapsulated in an instance
* of Zend_Oauth_Config; it's not a Zend_Config instance since that level
* of abstraction is unnecessary and doesn't let me escape the accessors
* and mutators anyway!
*
* @var Zend_Oauth_Config
*/
protected $_config = null;
/**
* True if this request is being made with data supplied by
* a stream object instead of a raw encoded string.
*
* @var bool
*/
protected $_streamingRequest = null;
/**
* Constructor; creates a new HTTP Client instance which itself is
* just a typical Zend_Http_Client subclass with some OAuth icing to
* assist in automating OAuth parameter generation, addition and
* cryptographioc signing of requests.
*
* @param array|Zend_Config $oauthOptions
* @param string $uri
* @param array|Zend_Config $config
* @return void
*/
public function __construct($oauthOptions, $uri = null, $config = null)
{
if ($config instanceof Zend_Config && !isset($config->rfc3986_strict)) {
$config = $config->toArray();
$config['rfc3986_strict'] = true;
} else if (null === $config ||
(is_array($config) && !isset($config['rfc3986_strict']))) {
$config['rfc3986_strict'] = true;
}
parent::__construct($uri, $config);
$this->_config = new Zend_Oauth_Config;
if ($oauthOptions !== null) {
if ($oauthOptions instanceof Zend_Config) {
$oauthOptions = $oauthOptions->toArray();
}
$this->_config->setOptions($oauthOptions);
}
}
/**
* Load the connection adapter
*
* @param Zend_Http_Client_Adapter_Interface $adapter
* @return void
*/
public function setAdapter($adapter)
{
if ($adapter == null) {
$this->adapter = $adapter;
} else {
parent::setAdapter($adapter);
}
}
/**
* Set the streamingRequest variable which controls whether we are
* sending the raw (already encoded) POST data from a stream source.
*
* @param boolean $value The value to set.
* @return void
*/
public function setStreamingRequest($value)
{
$this->_streamingRequest = $value;
}
/**
* Check whether the client is set to perform streaming requests.
*
* @return boolean True if yes, false otherwise.
*/
public function getStreamingRequest()
{
if ($this->_streamingRequest) {
return true;
} else {
return false;
}
}
/**
* Prepare the request body (for POST and PUT requests)
*
* @return string
* @throws Zend_Http_Client_Exception
*/
protected function _prepareBody()
{
if($this->_streamingRequest) {
$this->setHeaders(self::CONTENT_LENGTH,
$this->raw_post_data->getTotalSize());
return $this->raw_post_data;
}
else {
return parent::_prepareBody();
}
}
/**
* Clear all custom parameters we set.
*
* @return Zend_Http_Client
*/
public function resetParameters($clearAll = false)
{
$this->_streamingRequest = false;
return parent::resetParameters($clearAll);
}
/**
* Set the raw (already encoded) POST data from a stream source.
*
* This is used to support POSTing from open file handles without
* caching the entire body into memory. It is a wrapper around
* Zend_Http_Client::setRawData().
*
* @param string $data The request data
* @param string $enctype The encoding type
* @return Zend_Http_Client
*/
public function setRawDataStream($data, $enctype = null)
{
$this->_streamingRequest = true;
return $this->setRawData($data, $enctype);
}
/**
* Same as Zend_Http_Client::setMethod() except it also creates an
* Oauth specific reference to the method type.
* Might be defunct and removed in a later iteration.
*
* @param string $method
* @return Zend_Http_Client
*/
public function setMethod($method = self::GET)
{
if ($method == self::GET) {
$this->setRequestMethod(self::GET);
} elseif($method == self::POST) {
$this->setRequestMethod(self::POST);
} elseif($method == self::PUT) {
$this->setRequestMethod(self::PUT);
} elseif($method == self::DELETE) {
$this->setRequestMethod(self::DELETE);
} elseif($method == self::HEAD) {
$this->setRequestMethod(self::HEAD);
}
return parent::setMethod($method);
}
/**
* Same as Zend_Http_Client::request() except just before the request is
* executed, we automatically append any necessary OAuth parameters and
* sign the request using the relevant signature method.
*
* @param string $method
* @return Zend_Http_Response
*/
public function request($method = null)
{
if ($method !== null) {
$this->setMethod($method);
}
$this->prepareOauth();
return parent::request();
}
/**
* Performs OAuth preparation on the request before sending.
*
* This primarily means taking a request, correctly encoding and signing
* all parameters, and applying the correct OAuth scheme to the method
* being used.
*
* @return void
* @throws Zend_Oauth_Exception If POSTBODY scheme requested, but GET request method used; or if invalid request scheme provided
*/
public function prepareOauth()
{
$requestScheme = $this->getRequestScheme();
$requestMethod = $this->getRequestMethod();
$query = null;
if ($requestScheme == Zend_Oauth::REQUEST_SCHEME_HEADER) {
$oauthHeaderValue = $this->getToken()->toHeader(
$this->getUri(true),
$this->_config,
$this->_getSignableParametersAsQueryString(),
$this->getRealm()
);
$this->setHeaders('Authorization', $oauthHeaderValue);
} elseif ($requestScheme == Zend_Oauth::REQUEST_SCHEME_POSTBODY) {
if ($requestMethod == self::GET) {
require_once 'Zend/Oauth/Exception.php';
throw new Zend_Oauth_Exception(
'The client is configured to'
. ' pass OAuth parameters through a POST body but request method'
. ' is set to GET'
);
}
$raw = $this->getToken()->toQueryString(
$this->getUri(true),
$this->_config,
$this->_getSignableParametersAsQueryString()
);
$this->setRawData($raw, 'application/x-www-form-urlencoded');
$this->paramsPost = array();
} elseif ($requestScheme == Zend_Oauth::REQUEST_SCHEME_QUERYSTRING) {
$params = $this->paramsGet;
$query = $this->getUri()->getQuery();
if ($query) {
$queryParts = explode('&', $this->getUri()->getQuery());
foreach ($queryParts as $queryPart) {
$kvTuple = explode('=', $queryPart);
$params[urldecode($kvTuple[0])] =
(array_key_exists(1, $kvTuple) ? urldecode($kvTuple[1]) : null);
}
}
if (!empty($this->paramsPost)) {
$params = array_merge($params, $this->paramsPost);
$query = $this->getToken()->toQueryString(
$this->getUri(true), $this->_config, $params
);
}
$query = $this->getToken()->toQueryString(
$this->getUri(true), $this->_config, $params
);
$this->getUri()->setQuery($query);
$this->paramsGet = array();
} else {
require_once 'Zend/Oauth/Exception.php';
throw new Zend_Oauth_Exception('Invalid request scheme: ' . $requestScheme);
}
}
/**
* Collect all signable parameters into a single array across query string
* and POST body. These are returned as a properly formatted single
* query string.
*
* @return string
*/
protected function _getSignableParametersAsQueryString()
{
$params = array();
if (!empty($this->paramsGet)) {
$params = array_merge($params, $this->paramsGet);
$query = $this->getToken()->toQueryString(
$this->getUri(true), $this->_config, $params
);
}
if (!empty($this->paramsPost)) {
$params = array_merge($params, $this->paramsPost);
$query = $this->getToken()->toQueryString(
$this->getUri(true), $this->_config, $params
);
}
return $params;
}
/**
* Simple Proxy to the current Zend_Oauth_Config method. It's that instance
* which holds all configuration methods and values this object also presents
* as it's API.
*
* @param string $method
* @param array $args
* @return mixed
* @throws Zend_Oauth_Exception if method does not exist in config object
*/
public function __call($method, array $args)
{
if (!method_exists($this->_config, $method)) {
require_once 'Zend/Oauth/Exception.php';
throw new Zend_Oauth_Exception('Method does not exist: ' . $method);
}
return call_user_func_array(array($this->_config,$method), $args);
}
}