如何使用cURL和PHP调用包含非拉丁字符的URL?

时间:2015-07-28 12:47:59

标签: php curl encoding character-encoding

我正在使用PHPExcel使用此设置从excel文件中读取数据:

$data->setOutputEncoding('CP1250');

我正在迭代单元格和行,我正在为包含其数据的每一行构建URL。之后我使用cURL访问此URL。这是代码:

$h = fopen("cookies.txt", "w");
$header=array('GET /1575051 HTTP/1.1',
    'Host: asd.pl',
    'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language:pl-Pl,pl;q=0.8',
    'Cache-Control:max-age=0',
    'Connection:keep-alive',
    'Host:google.pl',
    'User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36',
    );
   curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,0);
    curl_setopt( $ch, CURLOPT_COOKIESESSION, true );
    //curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');

    curl_setopt($ch,CURLOPT_COOKIEFILE,'cookies.txt');
    curl_setopt($ch,CURLOPT_COOKIEJAR,'cookies.txt');
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
    curl_setopt($ch,CURLOPT_URL,$url);

    //file_put_contents("dane.txt",curl_exec($ch)."\n", FILE_APPEND);
fclose($h);
 curl_close($ch);

当脚本访问生成URL时,其他服务器正在将数据从GET保存到数据库。我在那里编码utf8_general_ci

保存波兰语(非拉丁语)字符丢失后;但是,当我回显URL并手动访问它时,它没问题。问题是cURL标题的编码吗?我尝试将其设置为各种类型,似乎没有任何效果。

0 个答案:

没有答案