1

このリンクは、ブラウザで開くと正常に機能します

しかし、私がこれを行うとき

$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
4

2 に答える 2

1

Ok。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);
于 2013-08-14T01:39:25.340 に答える
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");
于 2013-08-14T00:43:57.577 に答える