2016-07-14 6 views
0

この質問は誰も助けることができなかった私は、以前の求めていた別のトピック、以下の通りです:PHPでWGETを使用したurl_encode?

Retrieving M3U8 via PHP vs. via Website gives different session variables

をだから今、私はPHPを使った同じウェブサイトをwgetをしようとしているのが、私はエンコードする必要が信じていますurl。私は、以下のコマンドを実行しようとすると、何もダウンロードしませんます:

<?php 
    exec("wget --header='Host: www.glturk.com' http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR"); 
?> 

私はそのダウンロード空のファイルを取得:多分URLを示唆している「ライブajax.aspxストリーム=」を正しく読み込まれていませんか?

どうすればそのリンクをエンコードできますか?私も試しました:

<?php 
    $encoded = urlencode("http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LR"); 
    exec("wget --header='Host: www.glturk.com' $encoded"); 
?> 

いいですか?私は空のファイルをダウンロードし続けますか?ご協力いただきありがとうございます!

+0

私いくつかは、どのように彼らは彼らのコンテンツ –

答えて

0

カール

$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; 
+0

おかげでチームメイト、これは動作しますが、出力が再び無効ですM3U8こするあなたを望んでいないかもしれないと思う - 私の前の質問には、私の初期にあったものです役職。私はなぜそれが起こるのか分からない...私はm3u8をうまく取得することができますが、それは実行されません...私は[リンク]を実行する場合http://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint = TRT1_LR [/ link]リンクを直接、結果として得られるm3u8は完璧に動作します.. –

0

文字?&はシェルにとって特別な意味を持っているので、あなたは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"); 
+0

これは動作しますが、これはうまく動作しますが、m3u8の出力は無効です。私はなぜそれが起こるのかわからない...私はm3u8をうまく取得することができますが、それは実行されません...私はhttp://www.glturk.com/ajax.aspx?stream=live&type=free&ppoint=TRT1_LRリンクを実行する直接、結果として得られるm3u8は完全に動作します。 –

+0

返されたURLで問題を再現できないという別の質問に、私はちょうどコメントしました。 – Barmar

関連する問題