Я получаю эту ошибку, когда пытаюсь получить контент с YouTube более чем одним словом.
Warning: file_get_contents(https://www.youtube.com/results?search_query=html begginer): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in C:\xampp\htdocs\sites\mime\beta\default.php on line 5
Мой код:
<?php
$address = $_GET['q'];
$address = 'https://www.youtube.com/results?search_query=' . $address;
$html = file_get_contents($address);
echo $html;
?>
Однако, если я пытаюсь получить контент с YouTube, используя только одно слово (например: http://127.0.0.1/sites/mime/beta/default.php?q=html
), скрипт работает отлично.
В чем дело?
$address = $_GET['q']; // this GET can be spaced or not
Это URL, поэтому вы должны кодировать, прежде чем поместить в запрос YouTube
$address = urlencode($_GET['q']);
Других решений пока нет …