PHPにおけるcurl特性

1840 ワード

くだらないことを言わないで直接コードをつけます.
phpのcurlモジュールを使うには、まずphp.iniでphp_をオンにしますcurl.dll;
curlステップを使用します.
1.curlリソースハンドルを初期化する.
2.urlと対応するオプションを設定します.
3.urlを捕まえてブラウザに渡す.
4.curlリソースを閉じ、システムリソースを解放する.
<?php
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com/");//curl             
    curl_exec($ch);
    curl_close($ch);
?>

curlの高度な特性:
1.curlシミュレーションpost伝値;2.curlシミュレーションフォームのアップロード;3.curlは複数のurlを処理する.
<?php//post.php  
print_r($_POST);
<?php
    //curl  post  
    $url = "http://localhost/post.php";
    $post_arr = array(
        "user" => "demo",
        "pwd" => "123456",
    );
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// curl_exec()                 ,       
    curl_setopt($ch, CURLOPT_POST, 1);//     post    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_arr);
    $out = curl_exec($ch);
    curl_close($ch);
    echo $out;
?>

curlシミュレーションアップロードはpost伝値と似ています.唯一注意しなければならないのは、アップロードされたファイル名の前に@を付けることです.例えば、
<?php
    $file_arr = array(
        'a' => "@D:/test.jpg",
    );

curlは、複数のurlと単一のurlの違いを処理します.
<?php
//    curl  
$ch1 = curl_init("http://www.baidu.com/");
$ch2 = curl_init("http://www.sina.com/");

//     curl    
$mh = curl_multi_init();

//  2   
curl_multi_add_handle($ch1);
curl_multi_add_handle($ch2);

$running = null;
do{
usleep(10000);
curl_muti_exec($mh, $running);
}while($running > 0);

//      
curl_multi_remoce_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);

curl_multi_close($mh);

curl比file_get_contentsの速度は4倍速い...
詳細:http://cn2.php.net/manual/zh/book.curl.php