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 + -
显示快捷键?