卷曲返回的选项

问题描述 投票:1回答:3

我正在尝试从这里获取URL流(.m3u8):https://chch.cdn.clearcable.net/

我试过cURL:

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://chch.cdn.clearcable.net/');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$res = curl_exec($ch);    
echo $res;

但是,URL流不存在于代码中。我需要一些额外的功能吗?

先感谢您。

php
3个回答
1
投票

你需要告诉curl返回数据而不是输出它。如果您使用此设置:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$res应该包含您期望的数据。我可以证实这对我有用。如果它不适合你,请在调用curl_exec之后试试这个:

if($res === false) {
    echo 'Curl error: ' . curl_error($ch);
} else {
    echo $res;
}

如上所述,在Web上运行时,您需要查看源代码以查看浏览器解析的任何代码。或者您可以使用print_rvar_dump等方法在页面上查看它。


0
投票

您需要使用print_r()函数检查它是否返回任何值

请尝试以下代码

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://chch.cdn.clearcable.net/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec($ch);
 $post = json_decode($res ,true);

print_r($post);
curl_close($ch);

0
投票

您只需使用file_get_contents()将整个文件流式传输到字符串中即可。但单独使用它会产生错误:SSL operation failed with code 1..

This link describes why.

试试这段代码:

// Create a stream
$opts = [
    "ssl" => [
    "verify_peer" => false,
    "verify_peer_name" => false
  ]
];

$context = stream_context_create($opts);

$res = file_get_contents("https://chch.cdn.clearcable.net/", false, $context);

echo $res; 
© www.soinside.com 2019 - 2024. All rights reserved.