嵌入式播放器无法连接到网络 - CURL

时间:2012-10-25 13:04:56

标签: php flash curl streaming media-player

我使用CURL编写了一个登录到提供免费流媒体的页面的脚本,然后使用CURL我将选择子流进行子页面观看。

当脚本通过localhost(我正在使用xampp)运行时,一切正常,但是当我把它放在我的Web服务器上时,它说无法连接到网络。只有看起来不同的是cookie,在Web服务器上它没有新行/ n。一切都在一条线上。

如何处理?这是我的课程,用于连接页面:

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;

}

}

1 个答案:

答案 0 :(得分:0)

您使用http://strona/作为主持人。

您的服务器可能使用不同的配置,在/etc/resolve.conf上可以看到的Linux上无法直接找到主机时尝试附加.example.com

search example.com
nameserver 1.2.3.4

使用完整域名(http://strona.example.com)或IP可以解决问题。

如果不是这样,请尝试是否能够从服务器ping目标主机(或以其他方式连接),这可能是一个网络问题。