file_get_contents с пробелами в URL - PullRequest
5 голосов
/ 07 марта 2012

У меня есть проблема, когда даже если я заменю пробелы на% 20 и получу это содержимое, конечный URL, который получает браузер, превращает «% 20» в «% 2520»

Вот мой код, любые предложениязаставить это работать?это кажется легким, но я застрял: /

<?php
//$_GET['song'] will contain a song name with spaces
$song = str_replace(array("%20", "&", "?" , "/"), array(" ", "", "", ""), $_GET['song']);

// I use this to check how the GET 'song' looks after the str_replace
$list = "http://www.lyrdb.com/lookup.php?q=" . $song . "&for=fullt";
echo "list url is " . $list . "<hr>";

$content = file_get_contents("http://www.lyrdb.com/lookup.php?q=" . str_replace(" ", "%20", $song) . "&for=fullt");

echo $content;
?>

, если вы переходите на http://webservices.lyrdb.com/lookup.php?q=red%20hot%20chili%20peppers&for=fullt В результате должен появиться список лирических кодов.

Когда я иду на мойwebsite /? song = red hot chili peppers, он тоже преобразует пробелы в% 20, но если кажется, что браузер конвертирует% в% 25.

Может кто-нибудь мне помочь?

Ответы [ 2 ]

13 голосов
/ 07 марта 2012
$song = $_GET['song']);

$url = "http://www.lyrdb.com/lookup.php?for=fullt&q=";

echo "list url is " . htmlentities($url . $song) . "<hr>";

$content = file_get_contents($url . urlencode($song));

echo $content;
0 голосов
/ 26 мая 2019
$data = json_encode($_POST);

$url = "http://www.index.com?data=";

echo file_get_contents($url . urlencode($data));
...