curl.php.svn-base

来自「PHP 知识管理系统(基于树结构的知识管理系统), 英文原版的PHP源码。」· SVN-BASE 代码 · 共 800 行 · 第 1/2 页

SVN-BASE
800
字号
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: *//** * Net_Curl * * LICENSE: This source file is subject to version 3.0 of the PHP license * that is available through the world-wide-web at the following URI: * http://www.php.net/license/3_0.txt.  If you did not receive a copy of * the PHP License and are unable to obtain it through the web, please * send a note to license@php.net so we can mail you a copy immediately. * * @category   Net * @package    Net_Curl * @author     David Costa <gurugeek@php.net> * @author     Sterling Hughes <sterling@php.net>                            * @author     Joe Stump <joe@joestump.net>  * @copyright  1997-2005 The PHP Group * @license    http://www.php.net/license/3_0.txt  PHP License 3.0 * @version    CVS: $Revision$ * @link       http://pear.php.net/package/Net_Curl */require_once('PEAR.php');class Net_Curl {    // {{{ Public Properties    /**     * The URL for cURL to work with     *     * @var string $url     * @access public     */    var $url;      /**     * The Username for standard HTTP Authentication     *     * @var string $username     * @access public     */    var $username = '';        /**     * The Password for standard HTTP Authentication     *     * @var string $password     * @access public     */    var $password = '';         /**     * The SSL version for the transfer     *     * @var integer $sslVersion     * @access public     */    var $sslVersion;        /**     * The filename of the SSL certificate     *     * @var string $sslCert     * @access public     */    var $sslCert;        /**     * The password corresponding to the certificate     * in the $sslCert property     *     * @var string $sslCertPasswd     * @access public     */    var $sslCertPasswd;      /**     * User Agent string when making an HTTP request     *     * @var string $userAgent     * @access public     */    var $userAgent;        /**     * Whether or not to include the header in the results     * of the CURL transfer     *     * @var boolean $header     */    var $header = false;        /**     * Whether or not to output debug information while executing a     * curl transfer     *     * @var boolean $verbose     * @access public     */    var $verbose = false;        /**     * Whether or not to display a progress meter for the current transfer     *     * @var boolean $progress     * @access public     */    var $progress = false;        /**     * Whether or not to suppress error messages     *     * @var boolean $mute     * @access public     */    var $mute = false;        /**     * Whether or not to follow HTTP Location headers.     *     * @var boolean $followLocation     * @access public     */    var $followLocation = true;    /**     * Whether or not to follow HTTP Location headers.     *      * @var boolean $follow_location     * @access public     * @deprecated     */    var $follow_location = false;      /**     * Time allowed for current transfer, in seconds.  0 means no limit     *     * @var int $timeout     * @access public     */    var $timeout = 0;      /**     * Whether or not to return the results of the     * current transfer     *     * @var boolean $returnTransfer     * @access public     */    var $returnTransfer = true;    /**     * Whether or not to return the results of the     * current transfer     *     * @var boolean $return_transfer     * @access public     * @deprecated     */    var $return_transfer = false;        /**     * The type of transfer to perform (ie. 'POST', 'GET', 'PUT', etc)     *     * @var string $type     * @access public     */    var $type;        /**     * The file to upload     *     * @var string $file     * @access public     */    var $file;        /**     * The file size of the file pointed to by the $file     * property     *     * @var integer $fileSize     * @access public     */    var $fileSize;    /**     * The file size of the file pointed to by the $file     * property     *     * @var integer $file_size     * @access public     * @deprecated     */    var $file_size = false;        /**     * The cookies to send to the remote site     *     * @var array $cookies     * @access public     */    var $cookies = array();        /**     * Additional HTTP headers to send to the remote site     *     * @var array $httpHeaders     * @access public     */    var $httpHeaders = null;    /**     * Additional HTTP headers to send to the remote site     *     * @var array $http_headers     * @access public     * @deprecated     */    var $http_headers = false;        /**     * The fields to send in a 'POST' request     *     * @var array $fields     * @access public     */    var $fields;        /**     * The proxy server to go through     *     * @var string $proxy     * @access public     */    var $proxy;        /**     * The username for the Proxy server     *     * @var string $proxyUser     * @access public     */    var $proxyUser;        /**     * The password for the Proxy server     *     * @var string $proxyPassword     * @access public     */    var $proxyPassword;    /**     * $verifyPeer     *     * FALSE to stop CURL from verifying the peer's certificate.     * Alternate certificates to verify against can be specified     * with the CURLOPT_CAINFO option or a certificate directory     * can be specified with the CURLOPT_CAPATH option.     * CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE     * if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2).     *     * @var boolean $verifyPeer     * @access public     */    var $verifyPeer = true;    /**     * $verifyHost     *     * 0 : to stop CURL from verifying the host's certificate.     * 1 : to check the existence of a common name in the SSL peer certificate.     * 2 : to check the existence of a common name  and also verify that it      *     matches the hostname provided.     *     * @var bool $verifyHost     * @access public     */    var $verifyHost = 2;    /**     * $caInfo     *     * Set value for CURLOPT_CAINFO. The name of a file holding one or more      * certificates to verify the peer with. This only makes sense when used      * in combination with CURLOPT_SSL_VERIFYPEER. curl-ca-bundle.crt is      * avaible on the Curl website http://curl.haxx.se/ for download inside      * the packages.     *     * @var string $caInfo     * @access public     */    var $caInfo = '';    /**     * $caPath     *     * Set value for CURLOPT_CAPATH. A directory that holds multiple CA      * certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER.     *     * @var string $caPath     * @access public     */    var $caPath;    // }}}    // {{{ Private Properties    /**     * The current curl handle     *     * @var resource $_ch     * @access private     * @see Net_Curl::create()     */    var $_ch = null;    /**     * The file upload resource     *     * The CURLOPT_INFILE requires a file resource and not just a file name.      * This is used by execute to open the file.     *     * @var resource $_fp     * @access private     * @see Net_Curl::execute()     */    var $_fp = null;    // }}}    // {{{ __construct($url = '', $userAgent = '')    /**     * The Net_Curl PHP 5.x constructor, called when a new Net_Curl object     * is initialized (also called via 4.x constructor)     *     * @param string $url The URL to fetch (can be set using the $url property as well)     * @param string $userAgent The userAgent string (can be set using the $userAgent property as well)     * @access public     * @author Joe Stump <joe@joestump.net>      */    function __construct($url = '', $userAgent = '')    {        if (is_string($url) && strlen($url)) {            $this->url = $url;        }              if (is_string($userAgent) && strlen($userAgent)) {            $this->userAgent = $userAgent;        }    }    // }}}    // {{{ Net_Curl($url = '', $userAgent = '')    /**     * Net_Curl     *     * PHP 4.x constructor.     *     * @access public     * @author Joe Stump <joe@joestump.net>     */    function Net_Curl($url = '', $userAgent = '')    {        $this->__construct($url,$userAgent);              }    // }}}    // {{{ execute()    /**     * Executes a prepared CURL transfer     *     * Run this function to execute your cURL request. If all goes well you     * should get a string (the output from the remote host regarding your     * request) or true (if you choose to output directly to the browser). If     * something fails then PEAR_Error is returned.     *     * <code>     * <?php     *     require_once('Net/Curl.php');     *          *     $curl = & new Net_Curl('http://www.example.com');     *     $curl->fields = array('foo' => '1', 'bar' => 'apple');     *     $result = $curl->execute();     *     if (!PEAR::isError($result)) {     *         echo $result;     *     }     * ?>     * </code>     *     * @access public     * @author Sterling Hughes <sterling@php.net>     * @author Joe Stump <joe@joestump.net>      * @return PEAR_Error on failure, true/result on success     * @since  PHP 4.0.5     */    function execute()    {        // Create cURL handle if it hasn't already been created        if (!is_resource($this->_ch)) {            $result = $this->create();            if (PEAR::isError($result)) {

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?