$ _REQUEST ["url"] не получить полный URL - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь загрузить URL-адрес facebook с помощью «file_get_contents», затем «htmlentities» и, наконец, «взорвать», чтобы извлечь URL-адрес видео.

моя проблема, когда я помещаю ссылку вphp работает нормально, но когда я использую $_REQUEST["url"], я получаю ссылку короче отправленной

пример: в браузере я получаю: https://m.facebook.com/story.php?story_fbid=726043457734682&id=520394245009393&_rdr

, но если я распечатаю его изPHP будет: https://m.facebook.com/story.php?story_fbid=72604345773468

Я добавил эту строку в свой PHP:

ini_set('user_agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:7.0.1) Gecko/20100101 Firefox/60.0');

Я пытался использовать "$ _GET"

ничего не работает: (

Я пробовал много кодов, но ничего не помогло в моей проблеме, или, возможно, я не знал, как использовать .... пожалуйста, помогите мне с примером.

что-то вроде этого я хочу:

$url = $_REQUEST["url"];
$lines = file_get_contents($url);
$page = htmlentities($lines);

Спасибо ..

1 Ответ

0 голосов
/ 06 октября 2018

Проблема связана с URL-адресом, который вы используете для запроса сценария PHP.

У вас есть что-то вроде этого:

http://example.com/your.php?url=http://something/?foo=1&bar=2

Символ & имеет особое значение в запросестрока.Он разделяет значения.

Это дает вам:

url = http://something/?foo=1
bar = 2

Вот почему ваш адрес Facebook обрезается по адресу &.

. Вам необходимо закодироватьURL до вы отправляете в PHP.

Как минимум, & необходимо заменить на %26, но вы должны использовать функцию, которая заменяет все специальныесимволы, такие как JavaScript encodeURIComponent или PHP urlencode.

. Это даст вам:

http://example.com/your.php?url=http%3A%2F%2Fsomething%2F%3Ffoo%3D1%26bar%3D2

Исправлениеввод в ваш сценарий, как описано выше, является правильным и простым способом исправить это.

Если вы абсолютно не можете исправить необработанные входные данные, то вам потребуется доступ к необработанным данным в URL (с помощью $_SERVER[REQUEST_URI]) и разбери сам.

...