cURL 函数
在线手册:中文 英文
PHP手册

curl_init

(PHP 4 >= 4.0.2, PHP 5)

curl_init初始化一个cURL会话

说明

resource curl_init ([ string $url = NULL ] )

初始化一个新的会话,返回一个cURL句柄,供curl_setopt(), curl_exec()curl_close() 函数使用。

参数

url

如果提供了该参数,CURLOPT_URL 选项将会被设置成这个值。你也可以使用curl_setopt()函数手动地设置这个值。

返回值

如果成功,返回一个cURL句柄,出错返回 FALSE

范例

Example #1 初始化一个新的cURL会话并获取一个网页

<?php
// 创建一个新cURL资源
$ch curl_init();

// 设置URL和相应的选项
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADER0);

// 抓取URL并把它传递给浏览器
curl_exec($ch);

// 关闭cURL资源,并且释放系统资源
curl_close($ch);
?>

参见


cURL 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: 初始化一个cURL会话

用户评论:

jharris at et2brut dot us (03-Dec-2010 10:20)

Just to clarify:

Spaces in the URL need to be replaced with a %20.

Spaces in the querystring need to be replaced with a +

james at mettro dot com dot au (13-Oct-2010 07:05)

Someone mentioned you may need to replace spaces with +.

This didn't work for me, I had to replace them with %20, eg:

<?php $url = str_replace(' ', '%20', $url); ?>

Brett (06-Jun-2009 09:25)

Be careful when using spaces in the URL... make sure to replace them with + signs, otherwise it won't work.

rossixx at gmx dot net (25-Oct-2007 05:48)

e.g. you can check how many characters are on test_1.php

or you can it use for more, i have used this function for a nagios check.

<?PHP
echo "CURL - function test <br>" ;
if (
$load == 1){
function
webcheck ($url) {
       
$ch = curl_init ($url) ;
       
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ;
       
$res = curl_exec ($ch) ;
       
curl_close ($ch) ;
        return (
$res) ;
}
echo
"url = $url <br>" ;

$erg = webcheck("my_page.php/test_1.php") ;
$zahl = strlen ($erg) ;
echo
"length = $zahl " ;
?>

ezyang at php dot net (24-Oct-2007 03:31)

curl_init() has undefined behavior if you pass 'false' to it and can crash when you try to copy the resulting handle using curl_copy_handle(). Keep this in mind if you create a wrapper object for CURL.

darkstar_ae at hotmail dot com (25-May-2006 04:20)

For some reason on some webservers it may not be able to understand what cURL is doing. If you're getting unexpected results (like getting no output when the URL is valid) while using curl_init(). Add a trailing slash '/' after the url if you haven't done so already.

ru dot dy at gmx dot net (02-Sep-2005 11:10)

The curl-functions can be used to check the ICQ-webstatus from an icq-number, to get the status as a string rather than as one of those standard images provided from ICQ. This can also be used to place your own Image instead of simple text, to show ones online-status, of course if activated in the options. The idea behind is to get just the text from the apache-site that would lead us to the picture  that shows the online status. curl does not do any redirect, as long as we don't set CURLOPT_FOLLOWLOCATION. This is nice because the image can change, as long as the paths and filenames (contained in the site-text) don't. The different states are stored in a short array of unsigned crc-values.

<?php

class ICQ {
  
 var
$crc = array('253889085' => 'offline', '1177883536' => 'online', '1182613274' => 'hidden');
//CRCs valid as long as the redirect-page does not change
  
 
function getCrc($url) {
  
$ch = curl_init();
  
curl_setopt ($ch, CURLOPT_URL, $url);
  
curl_setopt ($ch, CURLOPT_HEADER, 0);
  
ob_start();
  
curl_exec ($ch);
  
curl_close ($ch);
  
$cache = ob_get_contents();

  
ob_end_clean();
  
//print($cache);
  
return (string)abs(crc32($cache));
 }
  
 function
status($number) {
  
$check = $this->getCrc( 'http://status.icq.com/online.gif?icq=' . $number . '&img=5');
   if (
in_array($check, array_keys($this->crc))) {
     return
$this->crc[$check];
   }
   return
false;
 }
    
}
?>

Usage:

<?php
 $icq
= new ICQ();
 print(
$icq->status('123456789'));
?>

Outputs 'online', 'offline' or 'hidden'.

Jos Enrique Serrano Expsito (04-Feb-2005 10:35)

<?php
    vWritePageToFile
( 'http://es.php.net', 'es.php.net.txt' );
?>
... And the text file stand in the server in the same folder that the script.
This is the function code.-
<?php
   
function vWritePageToFile( $sHTMLpage, $sTxtfile ) {
    
$sh =          curl_init( $sHTMLpage );
    
$hFile =                       FOpen( $sTxtfile, 'w' );
    
curl_setopt( $sh, CURLOPT_FILE, $hFile );
    
curl_setopt( $sh, CURLOPT_HEADER, 0 );
    
curl_exec  ( $sh );
    
$sAverageSpeedDownload = curl_getInfo( $sh, CURLINFO_SPEED_DOWNLOAD );
    
$sAverageSpeedUpload   = curl_getInfo( $sh, CURLINFO_SPEED_UPLOAD );
     echo
'<pre>';
     echo
'Average speed download == ' . $sAverageSpeedDownload . '<br>';
     echo
'Average Speed upload    == ' . $sAverageSpeedUpload   . '<br>';
     echo
'<br>';
    
$aCURLinfo = curl_getInfo( $sh );
    
print_r( $aCURLinfo );
     echo
'</pre>';
    
curl_close$sh );
    
FClose    $hFile );
     echo
'(<b>See the file  "'.$sTxtfile.'"  in the same path of the hosting'.
         
' to where this script PHP</b>).<br>';
    }
?>