2

私は CURL を使用して、無料のストリーミングを提供するページにログインするスクリプトを作成しました。次に、CURL を使用して、視聴するストリームを選択したサブページに移動します。

スクリプトが localhost (私は xampp を使用しています) を介して実行されている間はすべて正常に動作しますが、Web サーバーに配置すると、ネットワークに接続できないと表示されます。見た目が違うのは Cookie だけです。Web サーバーでは、改行 /n はありません。すべてが 1 行に並んでいます。

それに対処する方法は?これは私のクラスで、ページに接続するために使用します:

class openTV {

public $channel;

function __construct($channel) {
    $this -> channel = $channel;    
}

function openChannel() {

    $login_email = 'mail@gmail.com';
    $login_pass = 'pass';

    $fp = fopen("cookie.txt", "w");
    fclose($fp); 

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://strona/user/login');
    curl_setopt($ch, CURLOPT_POSTFIELDS,'email='.urlencode($login_email).'&password='.urlencode($login_pass));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
    curl_setopt($ch, CURLOPT_REFERER, "http://strona/user/login");
    $page = curl_exec($ch);

    curl_setopt($ch, CURLOPT_URL, $this->channel);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3");
    curl_setopt($ch, CURLOPT_REFERER, $this->channel);
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
    curl_setopt($ch, CURLOPT_POST, 0);
    $info = curl_getinfo ($ch);
    $page = curl_exec($ch);

    preg_match('/session_token=\[[a-zA-Z0-9]{8}\]/', $page, $matches);
    $return['token'] = substr($matches[0], 31, 8); 

    preg_match('/<object(.*)>[.\s\S]*<\/object>/', $page, $matches);
    $return['player'] = $matches[0];
    //$return['player'] = $page;

    $return['channel'] = $this->channel;

    return $return;

}

}
4

1 に答える 1

0

をホストとして使用http://strona/しています。

.example.comサーバーはおそらく、ホストを直接見つけられなかったときに追加しようとしない別の構成を使用している可能性があります。Linux では、次のようになり/etc/resolve.confます。

search example.com
nameserver 1.2.3.4

完全なドメイン名 ( http://strona.example.com) または IP を使用すると、問題が解決するはずです。

そうでない場合は、サーバーからターゲット ホストに ping (または接続) できるかどうかを試してください。ネットワークの問題である可能性があります。

于 2012-10-25T13:08:50.780 に答える