我正在研究从bing图像中抓取1张图像的东西 由于某种原因,file_get_contents不起作用所以我搜索了一下并得到了以下方法 - 这对英语关键词有效:
$fp = fsockopen("www.bing.com", 80, $errn, $errs);
$ar = "عربي";
$out = "GET /images/search?q=$ar HTTP/1.1\r\n";
echo "$out";
echo "<Br><br>";
$out .= "Host: www.bing.com\r\n";
$out .= "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0\r\n";
$out .= "Connection: close\r\n";
$out .= "\r\n";
fwrite($fp, $out);
$response = "";
while ($line = fread($fp, 4096)) {
$response .= $line;
}
fclose($fp);
$response_body = substr($response, strpos($response, "\r\n\r\n") + 4);
// or
list($response_headers, $response_body) = explode("\r\n\r\n", $response, 2);
因此,如果$ ar包含英文关键字,那么它就是完美的。但是,当我尝试输入一个阿拉伯语单词时 - 结果是错综复杂的 - 并且不会将结果与bing图像搜索相匹配。
我的php文件的顶部:
<meta http-equiv='content-Type' content='text/html; charset=UTF-8'/>
非常感谢任何帮助。 TIA
答案 0 :(得分:2)
我尝试使用english关键字在浏览器中访问该页面。效果很好。
http://www.bing.com/images/search/?q=dog
当我用你的字符串尝试它时,我得到404 respose:
http://www.bing.com/images/search/?q=عربي
我使用urlencode
对您的字符串进行编码,然后再次使用Works,优先。
http://www.bing.com/images/search/?q=%D8%B9%D8%B1%D8%A8%D9%8A%0A
答案 - &gt;绝对使用urlencode($ar)
,这是你问题的解决方案。
答案 1 :(得分:2)
我知道你说你试过urlencode()
但这对我有用:
$ ar = urlencode(“عربي”);