其它服务
在线手册:中文  英文

Client URL Library


其它服务
在线手册:中文  英文

用户评论:

arturo at midnightvip dot com (2013-06-12 10:56:49)

Hey I modified script for php 5. Also I add support server auth. and fixed some little bugs on the script. 

<?php 
 
class mycurl 
     protected 
$_useragent 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1'
     protected 
$_url
     protected 
$_followlocation
     protected 
$_timeout
     protected 
$_maxRedirects
     protected 
$_cookieFileLocation './cookie.txt'
     protected 
$_post
     protected 
$_postFields
     protected 
$_referer ="http://www.midnightvip.com"

     protected 
$_session
     protected 
$_webpage
     protected 
$_includeHeader
     protected 
$_noBody
     protected 
$_status
     protected 
$_binaryTransfer
     public    
$authentication 0
     public    
$auth_name      ''
     public    
$auth_pass      ''

     public function 
useAuth($use){ 
       
$this->authentication 0
       if(
$use == true$this->authentication 1
     } 

     public function 
setName($name){ 
       
$this->auth_name $name
     } 
     public function 
setPass($pass){ 
       
$this->auth_pass $pass
     } 

     public function 
__construct($url,$followlocation true,$timeOut 30,$maxRedirecs 4,$binaryTransfer false,$includeHeader false,$noBody false
     { 
         
$this->_url $url
         
$this->_followlocation $followlocation
         
$this->_timeout $timeOut
         
$this->_maxRedirects $maxRedirecs
         
$this->_noBody $noBody
         
$this->_includeHeader $includeHeader
         
$this->_binaryTransfer $binaryTransfer

         
$this->_cookieFileLocation dirname(__FILE__).'/cookie.txt'

     } 

     public function 
setReferer($referer){ 
       
$this->_referer $referer
     } 

     public function 
setCookiFileLocation($path
     { 
         
$this->_cookieFileLocation $path
     } 

     public function 
setPost ($postFields
     { 
        
$this->_post true
        
$this->_postFields $postFields
     } 

     public function 
setUserAgent($userAgent
     { 
         
$this->_useragent $userAgent
     } 

     public function 
createCurl($url 'nul'
     { 
        if(
$url != 'nul'){ 
          
$this->_url $url
        } 

         
$s curl_init(); 

         
curl_setopt($s,CURLOPT_URL,$this->_url); 
         
curl_setopt($s,CURLOPT_HTTPHEADER,array('Expect:')); 
         
curl_setopt($s,CURLOPT_TIMEOUT,$this->_timeout); 
         
curl_setopt($s,CURLOPT_MAXREDIRS,$this->_maxRedirects); 
         
curl_setopt($s,CURLOPT_RETURNTRANSFER,true); 
         
curl_setopt($s,CURLOPT_FOLLOWLOCATION,$this->_followlocation); 
         
curl_setopt($s,CURLOPT_COOKIEJAR,$this->_cookieFileLocation); 
         
curl_setopt($s,CURLOPT_COOKIEFILE,$this->_cookieFileLocation); 

         if(
$this->authentication == 1){ 
           
curl_setopt($sCURLOPT_USERPWD$this->auth_name.':'.$this->auth_pass); 
         } 
         if(
$this->_post
         { 
             
curl_setopt($s,CURLOPT_POST,true); 
             
curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields); 

         } 

         if(
$this->_includeHeader
         { 
               
curl_setopt($s,CURLOPT_HEADER,true); 
         } 

         if(
$this->_noBody
         { 
             
curl_setopt($s,CURLOPT_NOBODY,true); 
         } 
         
/* 
         if($this->_binary) 
         { 
             curl_setopt($s,CURLOPT_BINARYTRANSFER,true); 
         } 
         */ 
         
curl_setopt($s,CURLOPT_USERAGENT,$this->_useragent); 
         
curl_setopt($s,CURLOPT_REFERER,$this->_referer); 

         
$this->_webpage curl_exec($s); 
                   
$this->_status curl_getinfo($s,CURLINFO_HTTP_CODE); 
         
curl_close($s); 

     } 

   public function 
getHttpStatus() 
   { 
       return 
$this->_status
   } 

   public function 
__tostring(){ 
      return 
$this->_webpage
   } 

?>

Midnight VIP (2013-06-12 10:47:33)

Midnight VIP es una aplicación gratuita para móviles que llega para revolucionar el ocio nocturno de Madrid, presentando ofertas y descuentos de un amplio listado de locales. Midnight VIP hace posible que te puedas apuntar en las listas de las discotecas. Disponible gratuitamente en App Store y Google Play.
http://www.midnightvip.com

madhouse-network at hotmail dot com (2011-04-21 13:51:46)

curl does not seem to work with SSL TLS (FTPES)
It will throw the following error:
(1) Protocol ftpes not supported or disabled in libcurl

frank at interactinet dot com (2011-03-11 21:29:24)

I wrote the following to see if a submitted URL has a valid http response code and also if it responds quickly. 

Use the code like this:

<?php
$is_ok 
http_response($url); // returns true only if http response code < 400
?>

The second argument is optional, and it allows you to check for  a specific response code

<?php
http_response
($url,'400'); // returns true if http status is 400
?>

The third allows you to specify how long you are willing to wait for a response.

<?php
http_response
($url,'200',3); // returns true if the response takes less than 3 seconds and the response code is 200
?>

<?php
function http_response($url$status null$wait 3)
{
        
$time microtime(true);
        
$expire $time $wait;

        
// we fork the process so we don't have to wait for a timeout
        
$pid pcntl_fork();
        if (
$pid == -1) {
            die(
'could not fork');
        } else if (
$pid) {
            
// we are the parent
            
$ch curl_init();
            
curl_setopt($chCURLOPT_URL$url);
            
curl_setopt($chCURLOPT_HEADERTRUE);
            
curl_setopt($chCURLOPT_NOBODYTRUE); // remove body
            
curl_setopt($chCURLOPT_RETURNTRANSFERTRUE);
            
$head curl_exec($ch);
            
$httpCode curl_getinfo($chCURLINFO_HTTP_CODE);
            
curl_close($ch);
            
            if(!
$head)
            {
                return 
FALSE;
            }
            
            if(
$status === null)
            {
                if(
$httpCode 400)
                {
                    return 
TRUE;
                }
                else
                {
                    return 
FALSE;
                }
            }
            elseif(
$status == $httpCode)
            {
                return 
TRUE;
            }
            
            return 
FALSE;
            
pcntl_wait($status); //Protect against Zombie children
        
} else {
            
// we are the child
            
while(microtime(true) < $expire)
            {
            
sleep(0.5);
            }
            return 
FALSE;
        }
    }
?>

Hope this example helps.  It is not 100% tested, so any feedback [sent directly to me by email] is appreciated.

shidec00 at yahoo dot com (2011-01-19 14:55:50)

This anomali only happen on windows.
Server indicates that some variables built by http_build_query() is missing.

<?php
//...
//...
//...
$ping_url $this->sx_url.'ping.php?'.http_build_query($options);
$message $this->_post_curl($ping_url);
?>

After debugging i found that $ping_url contain url like :

http://example.com/ping.php?app=1&amp;key=mail&amp;ttd=df52861e

But myserver give "No ttd GET variable" response

This problem fixed by adding optional parameter to make sure that http_build_query() use only '&' as arg separator rather than '&amp;'

<?php
//...
//...
//...
$ping_url $this->sx_url.'ping.php?'.http_build_query($options,'','&');
$message $this->_post_curl($ping_url);
?>

ramez at dot dontspan dot zegenie dot com (2010-10-27 21:19:23)

CURL failed with PHP5.3 and Apache2.2.X on my Windows 7 machine.
It turns out that it's not enough to copy the two dll's mentioned (libeay32 and sslea32) from the php folder into your system32 folder. You HAVE TO UNBLOCK THESE TWO FILES.
Right click the file, select unblock, for each one. Then restart Apache.
Another very handy security feature added into Windows.

artax_N_O_S_P_A_M_erxes2 at iname dot com (2010-09-17 08:59:59)

I needed to use cURL in a php script to download data using not only SSL for the server authentication but also for client authentication.
On a default install of Fedora, setting up the proper cURL parameters, I would get an error: 

$ php curl.php
 Peer certificate cannot be authenticated with known CA certificates

The data on http://curl.haxx.se/docs/sslcerts.html was most useful. Indeed, toward to bottom it tells you to add a missing link inside /etc/pki/nssdb to use the ca-bundle.crt file. You do it so:

# cd /etc/pki/nssdb
# ln -s /usr/lib64/libnssckbi.so libnssckbi.so

Now you can do client authentication, provided you have your certificate handy with:

<?php
$data 
"<soap:Envelope>[...]</soap:Envelope>";
$tuCurl curl_init();
curl_setopt($tuCurlCURLOPT_URL"https://example.com/path/for/soap/url/");
curl_setopt($tuCurlCURLOPT_PORT 443);
curl_setopt($tuCurlCURLOPT_VERBOSE0);
curl_setopt($tuCurlCURLOPT_HEADER0);
curl_setopt($tuCurlCURLOPT_SSLVERSION3);
curl_setopt($tuCurlCURLOPT_SSLCERTgetcwd() . "/client.pem");
curl_setopt($tuCurlCURLOPT_SSLKEYgetcwd() . "/keyout.pem");
curl_setopt($tuCurlCURLOPT_CAINFOgetcwd() . "/ca.pem");
curl_setopt($tuCurlCURLOPT_POST1);
curl_setopt($tuCurlCURLOPT_SSL_VERIFYPEER1);
curl_setopt($tuCurlCURLOPT_RETURNTRANSFER1);
curl_setopt($tuCurlCURLOPT_POSTFIELDS$data);
curl_setopt($tuCurlCURLOPT_HTTPHEADER, array("Content-Type: text/xml","SOAPAction: \"/soap/action/query\"""Content-length: ".strlen($data)));

$tuData curl_exec($tuCurl);
if(!
curl_errno($tuCurl)){
  
$info curl_getinfo($tuCurl);
  echo 
'Took ' $info['total_time'] . ' seconds to send a request to ' $info['url'];
} else {
  echo 
'Curl error: ' curl_error($tuCurl);
}

curl_close($tuCurl);
echo 
$tuData;
?>

cliffclof atty gmail dotty com (2010-04-05 14:21:04)

A solution that addresses repeat calls to the same set of urls using the same connection simulating frequent ajax calls in separate browser tabs.
In a unique situation you may need to set a cookie then use that cookie for multiple separate persistent connections using the same session cookie. The problem is the session cookie may change while your doing your persistent calls. If you set every curl handle to update a shared cookiejar on close you may overwrite the new found session value with the old session value depending on the closing order of your handles. Also, because the cookiejar is only written to on a curl_close, you may be using dissimilar or old session info in some of your 'faked browser tabs'.
To solve this problem I created a unique handle that opens and closes specifically to set a cookie file using CURLOPT_COOKIEJAR. Then I just use the read-only CURLOPT_COOKIEFILE on the multiple separate persistent handles.
This solves the problem of shared cookies fighting to write their values and keep persistent calls using the most up to date cookie information.
Note: In my case the multiple calls were in a while loop and I was using php in shell. The session cookie value plus browser type limited the number of connections available and i wanted to use the max connections per session.

kalyan at kalyanchakravarthy dot net (2010-03-01 07:32:34)

When using curl with cookies, Relative path doesn't seem to work.
Use absolute path for setting the variables CURLOPT_COOKIEFILE & CURLOPT_COOKIEJAR.
To make life easier use the realpath("file.txt") function to get the absolute path.

Chris Pollett (2010-01-18 18:56:50)

This is something obscure I noticed... If you try to use something like:

<?php
curl_setopt
($agentCURLOPT_POSTtrue);
curl_setopt($agentCURLOPT_POSTFIELDS$post_data);    
?>

so that you POST something to a URL. Then if you screwed up your URL slightly like:

http://www.example.com

rather than

http://www.example.com/ (note the slash)

hence, causing a redirect, then your posted data won't be sent once the redirect occurs.

eugene at ultimatecms dot co dot za (2009-12-07 15:38:49)

A simple whois/domain availability check using cURL:

<?php

function domain_check($domain) {

$data 'http://'.$domain;

// Create a curl handle to a non-existing location
$ch curl_init($data);

// Execute
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
curl_exec($ch);

// Check if any error occured
if(curl_errno($ch))
{
    return 
'<span style="color:#22c922">The domain is available!</span>';
} else {
    return 
'<span style="color:#c92222">The domain is not available</span>';
}

// Close handle
curl_close($ch);
}

// Usage:
if(isset($_POST['domain'])) {
 echo 
domain_check($_POST['domain'].$_POST['tld']);
}

?>

<form method="POST" action="">
http:// <input type="text" name="domain">
<select name="tld">
<option value=".com">.com</option>
<option value=".net">.net</option>
<option value=".biz">.biz</option>
</option>
<input type="submit" value="Check">
</form>

artem at zabsoft dot co dot in (2009-05-11 11:43:18)

Hey I modified script for php 5. Also I add support server auth. and fixed some little bugs on the script.

[EDIT BY danbrown AT php DOT net: Original was written by (unlcuky13 AT gmail DOT com) on 19-APR-09.  The following note was included:
Below is the my way of using through PHP 5 objecte oriented encapsulation to make thing easier.]

<?php
 
class mycurl {
     protected 
$_useragent 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1';
     protected 
$_url;
     protected 
$_followlocation;
     protected 
$_timeout;
     protected 
$_maxRedirects;
     protected 
$_cookieFileLocation './cookie.txt';
     protected 
$_post;
     protected 
$_postFields;
     protected 
$_referer ="http://www.google.com";

     protected 
$_session;
     protected 
$_webpage;
     protected 
$_includeHeader;
     protected 
$_noBody;
     protected 
$_status;
     protected 
$_binaryTransfer;
     public    
$authentication 0;
     public    
$auth_name      '';
     public    
$auth_pass      '';

     public function 
useAuth($use){
       
$this->authentication 0;
       if(
$use == true$this->authentication 1;
     }

     public function 
setName($name){
       
$this->auth_name $name;
     }
     public function 
setPass($pass){
       
$this->auth_pass $pass;
     }

     public function 
__construct($url,$followlocation true,$timeOut 30,$maxRedirecs 4,$binaryTransfer false,$includeHeader false,$noBody false)
     {
         
$this->_url $url;
         
$this->_followlocation $followlocation;
         
$this->_timeout $timeOut;
         
$this->_maxRedirects $maxRedirecs;
         
$this->_noBody $noBody;
         
$this->_includeHeader $includeHeader;
         
$this->_binaryTransfer $binaryTransfer;

         
$this->_cookieFileLocation dirname(__FILE__).'/cookie.txt';

     }

     public function 
setReferer($referer){
       
$this->_referer $referer;
     }

     public function 
setCookiFileLocation($path)
     {
         
$this->_cookieFileLocation $path;
     }

     public function 
setPost ($postFields)
     {
        
$this->_post true;
        
$this->_postFields $postFields;
     }

     public function 
setUserAgent($userAgent)
     {
         
$this->_useragent $userAgent;
     }

     public function 
createCurl($url 'nul')
     {
        if(
$url != 'nul'){
          
$this->_url $url;
        }

         
$s curl_init();

         
curl_setopt($s,CURLOPT_URL,$this->_url);
         
curl_setopt($s,CURLOPT_HTTPHEADER,array('Expect:'));
         
curl_setopt($s,CURLOPT_TIMEOUT,$this->_timeout);
         
curl_setopt($s,CURLOPT_MAXREDIRS,$this->_maxRedirects);
         
curl_setopt($s,CURLOPT_RETURNTRANSFER,true);
         
curl_setopt($s,CURLOPT_FOLLOWLOCATION,$this->_followlocation);
         
curl_setopt($s,CURLOPT_COOKIEJAR,$this->_cookieFileLocation);
         
curl_setopt($s,CURLOPT_COOKIEFILE,$this->_cookieFileLocation);

         if(
$this->authentication == 1){
           
curl_setopt($sCURLOPT_USERPWD$this->auth_name.':'.$this->auth_pass);
         }
         if(
$this->_post)
         {
             
curl_setopt($s,CURLOPT_POST,true);
             
curl_setopt($s,CURLOPT_POSTFIELDS,$this->_postFields);

         }

         if(
$this->_includeHeader)
         {
               
curl_setopt($s,CURLOPT_HEADER,true);
         }

         if(
$this->_noBody)
         {
             
curl_setopt($s,CURLOPT_NOBODY,true);
         }
         
/*
         if($this->_binary)
         {
             curl_setopt($s,CURLOPT_BINARYTRANSFER,true);
         }
         */
         
curl_setopt($s,CURLOPT_USERAGENT,$this->_useragent);
         
curl_setopt($s,CURLOPT_REFERER,$this->_referer);

         
$this->_webpage curl_exec($s);
                   
$this->_status curl_getinfo($s,CURLINFO_HTTP_CODE);
         
curl_close($s);

     }

   public function 
getHttpStatus()
   {
       return 
$this->_status;
   }

   public function 
__tostring(){
      return 
$this->_webpage;
   }
}
?>

[EDIT BY danbrown AT php DOT net: Contains a bugfix supplied by "roetsch.beni at googlemail (dot) com" on 02-AUG-09, with the following note: "Fixes the bugfix: 417 bug at lighthttp server."]

admin at jeremyzaretski dot com (2009-03-18 08:14:11)

I wanted to create a script that acted as a bridge between an external server and an internal server, wherein the internal server was not connected to the internet, but had information required by the users connecting to the external server. I hatched the idea to use curl to connect from the external server to the internal server (using request variables to send queries) and return everything (data and headers) returned by the file server.

After being driven mad by segmentation faults and crashes because the curl_exec didn't like me having the CURLOPT_HEADERFUNCTION's function directly dumping the header:

<?php
function Duplicate_Header($curl$header)
{
    
header($header);
    return 
strlen($header);
}
?>

... I tried (on a whim) duplicating and trimming the header and passing the duplicate to the header function...

<?php
function Duplicate_Header($curl$header)
{
    
$duplicate trim($header);
    
header($duplicate);
    return 
strlen($header);
}
?>

Which worked just fine. I don't know if this is just some quirk of PHP4 or my lack of understanding of how the curl and header function works.

web at davss dot com (2009-01-26 02:00:51)

Here is a reusable curl object - please help me improve it. There is no erro handling (I don't need it) which can be implemented

<?php
class cURL {

    
# defaul global options
    
var $opts = array(
            
CURLOPT_HEADER => FALSE,
            
CURLOPT_RETURNTRANSFER => TRUE
    
);

    function 
cURL(){
    }

    function 
r($ch,$opt){
        
# assign global options array
        
$opts $this->opts;
        
# assign user's options
        
foreach($opt as $k=>$v){$opts[$k] = $v;}
        
curl_setopt_array($ch,$opts);
        
curl_exec($ch);
        
$r['code'] = curl_getinfo($ch,CURLINFO_HTTP_CODE);
        
$r['cr'] = curl_exec($ch);
        
$r['ce'] = curl_errno($ch);
        
curl_close($ch);
        return 
$r;
    }

    function 
get($url='',$opt=array()){
        
# create cURL resource
        
$ch curl_init($url);
        return 
$this->r($ch,$opt);
    }

    function 
post($url='',$data=array(),$opt=array()){
        
# set POST options
        
$opts[CURLOPT_POST] = TRUE;
        
$opts[CURLOPT_POSTFIELDS] = $data;

        
# create cURL resource
        
$ch curl_init($url);
        return 
$this->r($ch,$opt);
    }
};
$cURL = new cURL();

#
# END of CLASS
#

/*
* test.php files for testing purposes - must be in the same folder undelss you specify $url path
*
<?php
echo " WORKING!!<p>";
if($_GET > 0){
print_r($_GET);
}
elseif($_POST > 0){
print_r($_POST);
}
?>
*/
/*
# EXAMPLE OF USE
$path = "http://"; # path to test.php file
$file = "test.php"; # safe the above code in text.php file
$url = $path . $file;
$post_data = array("FLD1"=>"VAL1","FLD2"=>"VAL2");
# user's curl options that override global if necessary
$o = array(CURLOPT_HEADER => TRUE,CURLOPT_RETURNTRANSFER => TRUE,CURLOPT_FAILONERROR=>TRUE);

function ccc($arr){
    echo "CODE: " . $arr['code'] . "<p>";
    echo "CE: " . $arr['ce'] . "<p>";
    echo "CR: <br />" . $arr['cr'] . "<p>";
}

#POST TEST
$cPost = $cURL->post($url,$post_data,$o); // you can remove options
echo "<h2>cPost</h2>";
ccc($cPost);

#GET TEST
$cGet = $cURL->post($url,$post_data,$o); // you can remove options
echo "<h2>cGet</h2>";
ccc($cGet);
*/

?>

pyromus at gmail dot com (2008-10-16 04:37:02)

You can use this class for fast entry

<?php
class cURL {
var 
$headers;
var 
$user_agent;
var 
$compression;
var 
$cookie_file;
var 
$proxy;
function 
cURL($cookies=TRUE,$cookie='cookies.txt',$compression='gzip',$proxy='') {
$this->headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg';
$this->headers[] = 'Connection: Keep-Alive';
$this->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$this->user_agent 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$this->compression=$compression;
$this->proxy=$proxy;
$this->cookies=$cookies;
if (
$this->cookies == TRUE$this->cookie($cookie);
}
function 
cookie($cookie_file) {
if (
file_exists($cookie_file)) {
$this->cookie_file=$cookie_file;
} else {
fopen($cookie_file,'w') or $this->error('The cookie file could not be opened. Make sure this directory has the correct permissions');
$this->cookie_file=$cookie_file;
fclose($this->cookie_file);
}
}
function 
get($url) {
$process curl_init($url);
curl_setopt($processCURLOPT_HTTPHEADER$this->headers);
curl_setopt($processCURLOPT_HEADER0);
curl_setopt($processCURLOPT_USERAGENT$this->user_agent);
if (
$this->cookies == TRUEcurl_setopt($processCURLOPT_COOKIEFILE$this->cookie_file);
if (
$this->cookies == TRUEcurl_setopt($processCURLOPT_COOKIEJAR$this->cookie_file);
curl_setopt($process,CURLOPT_ENCODING $this->compression);
curl_setopt($processCURLOPT_TIMEOUT30);
if (
$this->proxycurl_setopt($processCURLOPT_PROXY$this->proxy);
curl_setopt($processCURLOPT_RETURNTRANSFER1);
curl_setopt($processCURLOPT_FOLLOWLOCATION1);
$return curl_exec($process);
curl_close($process);
return 
$return;
}
function 
post($url,$data) {
$process curl_init($url);
curl_setopt($processCURLOPT_HTTPHEADER$this->headers);
curl_setopt($processCURLOPT_HEADER1);
curl_setopt($processCURLOPT_USERAGENT$this->user_agent);
if (
$this->cookies == TRUEcurl_setopt($processCURLOPT_COOKIEFILE$this->cookie_file);
if (
$this->cookies == TRUEcurl_setopt($processCURLOPT_COOKIEJAR$this->cookie_file);
curl_setopt($processCURLOPT_ENCODING $this->compression);
curl_setopt($processCURLOPT_TIMEOUT30);
if (
$this->proxycurl_setopt($processCURLOPT_PROXY$this->proxy);
curl_setopt($processCURLOPT_POSTFIELDS$data);
curl_setopt($processCURLOPT_RETURNTRANSFER1);
curl_setopt($processCURLOPT_FOLLOWLOCATION1);
curl_setopt($processCURLOPT_POST1);
$return curl_exec($process);
curl_close($process);
return 
$return;
}
function 
error($error) {
echo 
"<center><div style='width:500px;border: 3px solid #FFEEFF; padding: 3px; background-color: #FFDDFF;font-family: verdana; font-size: 10px'><b>cURL Error</b><br>$error</div></center>";
die;
}
}
$cc = new cURL();
$cc->get('http://www.example.com');
$cc->post('http://www.example.com','foo=bar');
?>

[EDIT BY danbrown AT php DOT net: Includes a bugfix provided by "Anonymous" on 01-Dec-2008 @ 06:52.  Also replaced real URL with example.com as per RFC 2606.]

[EDIT BY danbrown AT php DOT net: Includes a bugfix provided by (manuel AT rankone DOT ch) on 24-NOV-09 to properly reference cURL initialization.]

eflash at gmx dot net (2008-10-05 09:45:34)

In order to use curl with secure sites you will need a ca-bundle.crt file; here's a PHP script I've written which creates a fresh ca-bundle:
http://www.gknw.net/php/phpscripts/mk-ca-bundle.php
I've also written scripts in other languages, f.e. the Perl one which ships now with curl distributions:
http://curl.haxx.se/lxr/source/lib/mk-ca-bundle.pl
and also a Win32 WSH script if you prefer that:
http://www.gknw.net/vb/scripts/mk-ca-bundle.vbs
HTH, Guenter.

易百教程