当我在浏览器中打开它时,此链接正常工作
但是当我这样做时
$link = 'http://www.bama.ir/خريد-خودرو/?ac411129-3-0-0-0-0-0-900000000-1/کادنزا-كیا';
echo file_get_contents($link);
我得到了
( ! ) Warning: file_get_contents(http://www.bama.ir/خريد-خودرو/?ac411129-3-0-0-0-0-0-900000000-1/کادنزا-كیا):
failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in
我认为这是链接末尾的字符(如果我用拉丁字符替换它就可以了)
是否有类似于file_get_contents的urlencode函数?
-----------------编辑--------------------------
$link = urlencode('http://www.bama.ir/خريد-خودرو/?ac411129-3-0-0-0-0-0-900000000-1/کادنزا-كیا');
echo file_get_contents("$link");
结果
Warning: file_get_contents(http%3A%2F%2Fwww.bama.ir%2F%D8%AE%D8%B1%D9%8A%D8%AF-%D8%AE%D9%88%D8%AF%D8%B1%D9%88%2F%3Fac411129-3-0-0-0-0-0-900000000-1%2F%DA%A9%D8%A7%D8%AF%D9%86%D8%B2%D8%A7-%D9%83%DB%8C%D8%A7): failed to open stream: No such file or directory in C:\wamp\www\index.php on line 12
答案 0 :(得分:1)
可以使用urlencode
将链接转换为file_get_contents
理解的字符串。例如:
echo file_get_conents("http://www.bama.ir/%D8%AE%D8%B1%D9%8A%D8%AF-%D8%AE%D9%88%D8%AF%D8%B1%D9%88/?ac411129-3-0-0-0-0-0-900000000-1/%DA%A9%D8%A7%D8%AF%D9%86%D8%B2%D8%A7-%D9%83%DB%8C%D8%A7");
答案 1 :(得分:1)
确定。您应该使用urlencode,但不能仅使用整个链接。
$link = 'http://www.bama.ir/'
. urlencode('خريد-خودرو')
. '/?ac411129-3-0-0-0-0-0-900000000-1/'
. urlencode('کادنزا-كیا');
// http://www.bama.ir/%D8%AE%D8%B1%D9%8A%D8%AF-%D8%AE%D9%88%D8%AF%D8%B1%D9%88/?ac411129-3-0-0-0-0-0-900000000-1/%DA%A9%D8%A7%D8%AF%D9%86%D8%B2%D8%A7-%D9%83%DB%8C%D8%A7
echo file_get_contents($link);