Php 如何在curl或类似示例中转换此代码?

Php 如何在curl或类似示例中转换此代码?,php,curl,php-curl,Php,Curl,Php Curl,我从Stack Overflow获得了这个函数,它对我帮助很大,因为它在我的本地系统上运行良好,但在我的服务器(Bluehost)上不起作用。可能存在什么问题,或者如何在服务器上测试它以使其正常工作 function post_async1($url, array $params) { foreach ($params as $key => &$val) { if (is_array($val)) $val = implode(',', $val);

我从Stack Overflow获得了这个函数,它对我帮助很大,因为它在我的本地系统上运行良好,但在我的服务器(Bluehost)上不起作用。可能存在什么问题,或者如何在服务器上测试它以使其正常工作

  function post_async1($url, array $params)
  {
    foreach ($params as $key => &$val) {
      if (is_array($val)) $val = implode(',', $val);
        $post_params[] = $key.'='.urlencode($val);  
    }
    $post_string = implode('&', $post_params);

    $parts=parse_url($url);

    $fp = fsockopen($parts['host'],
        isset($parts['port'])?$parts['port']:80,
        $errno, $errstr, 30);

    echo $out = "GET ".$parts['path']."?$post_string"." HTTP/1.1\r\n";//you can use POST instead of GET if you like
    $out.= "Host: ".$parts['host']."\r\n";
    $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
    $out.= "Content-Length: ".strlen($post_string)."\r\n";
    $out.= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    fclose($fp);
  }
$params['id']=36;

后异步1('http://uda:8888/sendmail.php“,$params)

fsockopen函数将用于与端口80(HTTP)或443(HTTPS)上的任何URL的出站连接。如果fsockopen试图使用另一个端口,则在我们将该端口添加到防火墙之前,它将无法工作。您需要请求他们打开插座

。。您在此处对密钥进行了错误编码,它应该是
$post_params[]=urlencode($key)。'='.urlencode($val)