Этот вопрос следует другой теме, которую я задавал ранее, но никто не смог помочь:
Получение M3U8 через PHP или через веб-сайт дает разные переменные сеанса
Так что теперь я пытаюсь WGET тот же сайт через PHP, но я считаю, что мне нужно кодировать URL. Когда я пытаюсь выполнить приведенную ниже команду, ничего не загружается:
<?php
exec("wget --header='Host: www.glturk.com' http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
?>
Я получаю пустой файл, который скачивает: «ajax.aspx-stream = live», что говорит о том, что, возможно, URL не читается правильно?
Как я могу закодировать эту ссылку? Я также попробовал:
<?php
$encoded = urlencode("http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
exec("wget --header='Host: www.glturk.com' $encoded");
?>
Любая идея? Я продолжаю загружать пустые файлы? Спасибо за вашу помощь!
локон
$url = "http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
Персонажи ?
а также &
имеют особое значение для оболочки, поэтому вам нужно процитировать URL.
exec("wget --header='Host: www.glturk.com' 'http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR'");
Правильная функция для экранирования аргументов оболочки escapeshellarg
, не urlencode
, Так что вы также можете сделать:
$encoded = escapeshellarg("http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR");
exec("wget --header='Host: www.glturk.com' $encoded");