⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libcurlexternal.inc.php

📁 软件的主要特点: 1.专门针对有"验证码"要求的论坛. 2.可以完成如下功能: 自动发布新帖,自动回复指定帖,自动注册论坛帐号 (所有操作不能同时针对一个网站,因为有"验证码"要求的网站是每次打开一个
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/* CURL Extension Emulation Library (Console Binary) * Copyright 2004-2007, Steve Blinch * http://code.blitzaffe.com * ============================================================================ * * DESCRIPTION * * Provides a pure-PHP implementation of the PHP CURL extension, for use on * systems which do not already have the CURL extension installed.  It emulates * all of the curl_* functions normally provided by the CURL extension itself * by wrapping the CURL console binary. * * This library will automatically detect whether or not the "real" CURL * extension is installed, and if so, it will not interfere.  Thus, it can be * used to ensure that, one way or another, the CURL functions are available * for use. * * This library is actually a wrapper for the CURL console application (usually * found in /usr/bin/curl), so you must have the CURL binary installed in order * to use this script. * * * USAGE * * Please see the PHP documentation under the "CURL, Client URL Library  * Functions" section for information about using this library.  Almost all of * the documentation and examples in the PHP manual should work with this * library. * * * LICENSE * * This script is free software; you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or (at your option) any later * version. * * This script is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more * details. *	 * You should have received a copy of the GNU General Public License along * with this script; if not, write to the Free Software Foundation, Inc., * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */ // if the real CURL PHP extension is installed, exit without doing anythingif (!extension_loaded("curl")) {// if the CURL path was not defined by the calling script, define itif (!defined("CURL_PATH")) define("CURL_PATH","/usr/bin/curl");// if the CURL binary was not found, do one of the following://   - if CURLEXT_MISSING_ABORT was defined, then exit without implementing the CURL functions//   - if CURLEXT_MISSING_IGNORE was defined, then implement the CURL functions anyway (even//     though they won't work without the CURL binary installed)//   - otherwise, raise a fatal error and halt the scriptif (!is_executable(CURL_PATH)) {	 	if (defined("CURLEXT_MISSING_ABORT") && CURLEXT_MISSING_ABORT) { 		return; 	} elseif (defined("CURLEXT_MISSING_IGNORE") && CURLEXT_MISSING_IGNORE) { 		// proceed and implement the CURL functions anyway, even though they won't work 	} else {		trigger_error("CURL extension is not loaded, and the commandline version of CURL was not found at ".CURL_PATH,E_USER_ERROR);	}}define("CURLEXT_VERSION","1.0.0");define('CURLOPT_NOTHING',0);define('CURLOPT_FILE',10001);define('CURLOPT_URL',10002);define('CURLOPT_PORT',3);define('CURLOPT_PROXY',10004);define('CURLOPT_USERPWD',10005);define('CURLOPT_PROXYUSERPWD',10006);define('CURLOPT_RANGE',10007);define('CURLOPT_INFILE',10009);define('CURLOPT_ERRORBUFFER',10010);define('CURLOPT_WRITEFUNCTION',20011);define('CURLOPT_READFUNCTION',20012);define('CURLOPT_TIMEOUT',13);define('CURLOPT_INFILESIZE',14);define('CURLOPT_POSTFIELDS',10015);define('CURLOPT_REFERER',10016);define('CURLOPT_FTPPORT',10017);define('CURLOPT_USERAGENT',10018);define('CURLOPT_LOW_SPEED_LIMIT',19);define('CURLOPT_LOW_SPEED_TIME',20);define('CURLOPT_RESUME_FROM',21);define('CURLOPT_COOKIE',10022);define('CURLOPT_HTTPHEADER',10023);define('CURLOPT_HTTPPOST',10024);define('CURLOPT_SSLCERT',10025);define('CURLOPT_SSLCERTPASSWD',10026);define('CURLOPT_SSLKEYPASSWD',10026);define('CURLOPT_CRLF',27);define('CURLOPT_QUOTE',10028);define('CURLOPT_WRITEHEADER',10029);define('CURLOPT_COOKIEFILE',10031);define('CURLOPT_SSLVERSION',32);define('CURLOPT_TIMECONDITION',33);define('CURLOPT_TIMEVALUE',34);define('CURLOPT_HTTPREQUEST',10035);define('CURLOPT_CUSTOMREQUEST',10036);define('CURLOPT_STDERR',10037);define('CURLOPT_POSTQUOTE',10039);define('CURLOPT_WRITEINFO',10040);define('CURLOPT_VERBOSE',41);define('CURLOPT_HEADER',42);define('CURLOPT_NOPROGRESS',43);define('CURLOPT_NOBODY',44);define('CURLOPT_FAILONERROR',45);define('CURLOPT_UPLOAD',46);define('CURLOPT_POST',47);define('CURLOPT_FTPLISTONLY',48);define('CURLOPT_FTPAPPEND',50);define('CURLOPT_NETRC',51);define('CURLOPT_FOLLOWLOCATION',52);define('CURLOPT_FTPASCII',53);define('CURLOPT_TRANSFERTEXT',53);define('CURLOPT_PUT',54);define('CURLOPT_MUTE',55);define('CURLOPT_PROGRESSFUNCTION',20056);define('CURLOPT_PROGRESSDATA',10057);define('CURLOPT_AUTOREFERER',58);define('CURLOPT_PROXYPORT',59);define('CURLOPT_POSTFIELDSIZE',60);define('CURLOPT_HTTPPROXYTUNNEL',61);define('CURLOPT_INTERFACE',10062);define('CURLOPT_KRB4LEVEL',10063);define('CURLOPT_SSL_VERIFYPEER',64);define('CURLOPT_CAINFO',10065);define('CURLOPT_PASSWDFUNCTION',20066);define('CURLOPT_PASSWDDATA',10067);define('CURLOPT_MAXREDIRS',68);define('CURLOPT_FILETIME',10069);define('CURLOPT_TELNETOPTIONS',10070);define('CURLOPT_MAXCONNECTS',71);define('CURLOPT_CLOSEPOLICY',72);define('CURLOPT_CLOSEFUNCTION',20073);define('CURLOPT_FRESH_CONNECT',74);define('CURLOPT_FORBID_REUSE',75);define('CURLOPT_RANDOM_FILE',10076);define('CURLOPT_EGDSOCKET',10077);define('CURLOPT_CONNECTTIMEOUT',78);define('CURLOPT_HEADERFUNCTION',20079);define('CURLOPT_HTTPGET',80);define('CURLOPT_SSL_VERIFYHOST',81);define('CURLOPT_COOKIEJAR',10082);define('CURLOPT_SSL_CIPHER_LIST',10083);define('CURLOPT_HTTP_VERSION',84);define('CURLOPT_FTP_USE_EPSV',85);define('CURLOPT_SSLCERTTYPE',10086);define('CURLOPT_SSLKEY',10087);define('CURLOPT_SSLKEYTYPE',10088);define('CURLOPT_SSLENGINE',10089);define('CURLOPT_SSLENGINE_DEFAULT',90);define('CURLOPT_DNS_USE_GLOBAL_CACHE',91);define('CURLOPT_DNS_CACHE_TIMEOUT',92);define('CURLOPT_PREQUOTE',10093); define('CURLINFO_EFFECTIVE_URL',1);define('CURLINFO_HTTP_CODE',2);define('CURLINFO_FILETIME',14);define('CURLINFO_TOTAL_TIME',3);define('CURLINFO_NAMELOOKUP_TIME',4);define('CURLINFO_CONNECT_TIME',5);define('CURLINFO_PRETRANSFER_TIME',6);define('CURLINFO_STARTTRANSFER_TIME',17);define('CURLINFO_REDIRECT_TIME',19);define('CURLINFO_REDIRECT_COUNT',20);define('CURLINFO_SIZE_UPLOAD',7);define('CURLINFO_SIZE_DOWNLOAD',8);define('CURLINFO_SPEED_DOWNLOAD',9);define('CURLINFO_SPEED_UPLOAD',10);define('CURLINFO_HEADER_SIZE',11);define('CURLINFO_REQUEST_SIZE',12);define('CURLINFO_SSL_VERIFYRESULT',13);define('CURLINFO_CONTENT_LENGTH_DOWNLOAD',15);define('CURLINFO_CONTENT_LENGTH_UPLOAD',16);define('CURLINFO_CONTENT_TYPE',18);define("TIMECOND_ISUNMODSINCE",1);define("TIMECOND_IFMODSINCE",2);function _curlopt_name($curlopt) {	foreach (get_defined_constants() as $k=>$v) {		if ( (substr($k,0,8)=="CURLOPT_") && ($v==$curlopt)) return $k;	}	return false;}// Initialize a CURL emulation sessionfunction curl_init($url=false) {	$i = $GLOBALS["_CURLEXT_OPT"]["index"]++;	$GLOBALS["_CURLEXT_OPT"][$i] = array("url"=>$url);		return $i;}// Set an option for a CURL emulation transfer function curl_setopt($ch,$option,$value) {		$opt = &$GLOBALS["_CURLEXT_OPT"][$ch];	if (!$opt["args"]) $opt["args"] = array();	$args = &$opt["args"];	if (!$opt["settings"]) $opt["settings"] = array();	$settings = &$opt["settings"];		switch($option) {		case CURLOPT_URL:			$opt["url"] = $value;			break;		case CURLOPT_VERBOSE:			$opt["verbose"] = $value>0;			break;		case CURLOPT_USERPWD:			if ($value==="") $value = false;			$settings["user"] = $value;			break;		case CURLOPT_PROXYUSERPWD:			if ($value==="") $value = false;			$settings["proxy-user"] = $value;			break;		case CURLOPT_COOKIE:			if ($value==="") $value = false;			if ( is_bool($value) || (strpos($value,"=")!==false) ) $settings["cookie"] = $value;			break;		case CURLOPT_COOKIEFILE:			if ($value==="") $value = false;			$settings["cookie"] = $value;			break;		case CURLOPT_COOKIEJAR:			if ($value==="") $value = false;			$settings["cookie-jar"] = $value;			break;		case CURLOPT_CUSTOMREQUEST:			if ($value==="") $value = false;			$settings["request"] = $value;			break;		case CURLOPT_PROXY:			if ($value==="") $value = false;			$settings["proxy"] = $value;			break;		case CURLOPT_INTERFACE:			if ($value==="") $value = false;			$settings["interface"] = $value;			break;		case CURLOPT_KRB4LEVEL:			if ($value==="") $value = false;			$settings["krb4"] = $value;			break;		case CURLOPT_SSLCERT:			$pass = "";			if (is_string($settings["cert"])) {				list(,$pass) = explode(":",$settings["cert"]);				if (strlen($pass)) $pass = ":$pass";			}			$settings["cert"] = $value.$pass;			break;		case CURLOPT_SSLCERTPASSWD:			$filename = "";			if (is_string($settings["cert"])) {				list($filename,) = explode(":",$settings["cert"]);			}			$settings["cert"] = $filename.":".$value;			break;		case CURLOPT_RANGE:			if ($value==="") $value = false;			$settings["range"] = $value;			break;		case CURLOPT_REFERER:			if ($value==="") $value = false;			$settings["referer"] = $value;			break;		case CURLOPT_NOBODY:			$settings["head"] = $value>0;			break;		case CURLOPT_FAILONERROR:			$opt["fail_on_error"] = $value>0;			break;		case CURLOPT_USERAGENT:			$settings["user-agent"] = $value;			break;		case CURLOPT_HEADER:			$settings["include"] = $value>0;			break;		case CURLOPT_RETURNTRANSFER:			$opt["return_transfer"] = $value>0;			break;		case CURLOPT_TIMEOUT:			$settings["max-time"] = (int) $value;			break;		case CURLOPT_HTTPHEADER:			reset($value);			foreach ($value as $k=>$header) $args[] = "header=".$header;			break;		case CURLOPT_POST:			$settings["data"]["enabled"] = $value>0;			break;		case CURLOPT_POSTFIELDS:			if ($value==="") $value = false;			$settings["data"]["value"] = $value;			break;		case CURLOPT_SSL_VERIFYPEER:			$settings["insecure"] = ($value==0);			break;		case CURLOPT_SSL_VERIFYHOST:			// not supported by the commandline client			break;		case CURLOPT_FOLLOWLOCATION:			$settings["location"] = $value>0;			break;

⌨️ 快捷键说明

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