【问题标题】:PHP fsockopen to curl conversionPHP fsockopen 到 curl 的转换
【发布时间】:2011-02-26 18:37:35
【问题描述】:

我有这段代码:

<?php $host = "registration.mypengo.com";
$request = "/webregistration.aspx?taskaction=serviceresponse&partner=157&subid=" . $subid . "&msisdn=" . $msisdn . "&type=TEXT&data=" . $data . "&serviceid=" . $service_id;
$fp = fsockopen($host, 80, $errno, $errstr, 3.0);

if($fp)
{
  fwrite($fp,
    "GET $request HTTP/1.0\r\n" .
    "Host: $host\r\n".
    "Connection: close\r\n".
    "Content-Length: " . strlen($request) . "\r\n" .
    "\r\n" .
  $request);

  stream_set_timeout($fp, 2, 0);
  $response = "";

  while(!feof($fp))
    $response .= fread($fp, 1024);

  fclose($fp);?>

我想尝试使用 curl,但我对 curl 有点陌生,所以有人可以分享一些想法吗?

【问题讨论】:

    标签: php curl fsockopen


    【解决方案1】:

    这是使用 cURL 的等价物,

        $ch = curl_init(); 
        curl_setopt($ch, CURLOPT_URL, "http://" . $host . $request); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
        curl_setopt($ch, CURLOPT_TIMEOUT, 2); 
        $response = curl_exec($ch); 
        curl_close($ch);      
    

    顺便说一句,这样制作查询字符串是不安全的。您应该使用http_build_query() 来构建它,以便正确编码。

    【讨论】:

      【解决方案2】:

      我建议你使用这个脚本。这太棒了: http://www.bin-co.com/php/scripts/load/

      【讨论】:

        猜你喜欢
        • 2011-06-23
        • 1970-01-01
        • 1970-01-01
        • 2014-11-25
        • 2017-06-05
        • 2011-03-21
        • 2011-05-24
        • 2017-08-03
        • 2019-06-04
        相关资源
        最近更新 更多