libcurlemu.inc.php
上传用户:jamesxinda
上传日期:2022-07-31
资源大小:28k
文件大小:4k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

PHP

  1. <?php
  2. /* CURL Extension Emulation Library
  3.  * Version 1.0.4
  4.  * Copyright 2004-2007, Steve Blinch
  5.  * http://code.blitzaffe.com
  6.  * ============================================================================
  7.  *
  8.  * DESCRIPTION
  9.  *
  10.  * Provides a pure-PHP implementation of the PHP CURL extension, for use on
  11.  * systems which do not already have the CURL extension installed.  It emulates
  12.  * all of the curl_* functions normally provided by the CURL extension itself.
  13.  *
  14.  * This will automatically detect and use the best CURL implementation available
  15.  * on your server.  It will attempt the following, in order:
  16.  *
  17.  * 1) Check for the existence of the "real" CURL PHP Extension.  If it is
  18.  *    loaded, the library will do nothing (and it will not interfere with the
  19.  *    "real" extension).
  20.  * 2) Check for the existence of the CURL console binary (usually located in
  21.  *    /usr/bin/curl).  If found, the library will emulate the CURL PHP
  22.  *    extension (including all curl_* functions) and use the console binary
  23.  *    to execute all requests.
  24.  * 3) If neither the "real" CURL PHP Extension nor the CURL console binary
  25.  *    are available, the library will emulate the CURL PHP extension (including
  26.  *    all curl_* functions) using a native, pure-PHP HTTP client implementation.
  27.  *    This implementation is somewhat limited, but it provides support for most
  28.  *    of the common CURL options.  HTTPS (SSL) support is available in this
  29.  *    mode under PHP 4.3.0 if the OpenSSL Extension is loaded.
  30.  *
  31.  * Thus, by including this library in your project, you can rely on having some
  32.  * level of CURL support regardless of the configuration of the server on which
  33.  * it is being used.
  34.  *
  35.  *
  36.  * HISTORY
  37.  *
  38.  * 1.0.4 (not released)
  39.  * - Fixed HTTPRetriever double-inclusion bug.
  40.  *
  41.  * 
  42.  * USAGE
  43.  *
  44.  * Simply copy all of the libcurlemu files into your project directory, then:
  45.  *
  46.  * require_once("libcurlemu.inc.php");
  47.  *
  48.  * After this, you can use all of the curl_* functions documented in the PHP
  49.  * Manual.
  50.  *
  51.  *
  52.  * EXAMPLE
  53.  *
  54.  * // CURL Extension Emulation Library Example
  55.  * //
  56.  * // Usage should be straightforward; you simply use this script exactly as you
  57.  * // would normally use the PHP CURL extension functions.
  58.  *
  59.  * // first, include libcurlemu.inc.php
  60.  * require_once('libcurlemu.inc.php');
  61.  *
  62.  * // at this point, libcurlemu has detected the best available CURL solution
  63.  * // (either the CURL extension, if available, or the CURL commandline binary,
  64.  * // if available, or as a last resort, HTTPRetriever, our native-PHP HTTP
  65.  * // client implementation) and has implemented the curl_* functions if
  66.  * // necessary, so you can use CURL normally and safely assume that all CURL
  67.  * // functions are available.
  68.  *
  69.  * // the rest of this example code is copied straight from the PHP manual's
  70.  * // reference for the curl_init() function, and will work fine with libcurlemu
  71.  *
  72.  * // create a new CURL resource
  73.  * $ch = curl_init();
  74.  * 
  75.  * // set URL and other appropriate options
  76.  * curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
  77.  * curl_setopt($ch, CURLOPT_HEADER, false);
  78.  * 
  79.  * // grab URL and pass it to the browser
  80.  * curl_exec($ch);
  81.  * 
  82.  * // close CURL resource, and free up system resources
  83.  * curl_close($ch);
  84.  *
  85.  *
  86.  * LICENSE
  87.  *
  88.  * This script is free software; you can redistribute it and/or modify it under the
  89.  * terms of the GNU General Public License as published by the Free Software
  90.  * Foundation; either version 2 of the License, or (at your option) any later
  91.  * version.
  92.  *
  93.  * This script is distributed in the hope that it will be useful, but WITHOUT ANY
  94.  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  95.  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  96.  * details.
  97.  *
  98.  * You should have received a copy of the GNU General Public License along
  99.  * with this script; if not, write to the Free Software Foundation, Inc.,
  100.  * 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  101.  */
  102. if (!extension_loaded('curl') && !function_exists('curl_init')) {
  103. define('CURLEXT_MISSING_ABORT',true);
  104. require_once(dirname(__FILE__)."/libcurlexternal.inc.php");
  105. if (!function_exists('curl_init')) {
  106. if (!class_exists('HTTPRetriever')) require_once(dirname(__FILE__)."/class_HTTPRetriever.php");
  107. require_once(dirname(__FILE__)."/libcurlnative.inc.php");
  108. }
  109. }
  110. ?>