我正在尝试从这里获取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流不存在于代码中。我需要一些额外的功能吗?
先感谢您。
你需要告诉curl返回数据而不是输出它。如果您使用此设置:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res
应该包含您期望的数据。我可以证实这对我有用。如果它不适合你,请在调用curl_exec
之后试试这个:
if($res === false) {
echo 'Curl error: ' . curl_error($ch);
} else {
echo $res;
}
如上所述,在Web上运行时,您需要查看源代码以查看浏览器解析的任何代码。或者您可以使用print_r
或var_dump
等方法在页面上查看它。
您需要使用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);
您只需使用file_get_contents()
将整个文件流式传输到字符串中即可。但单独使用它会产生错误:SSL operation failed with code 1..
试试这段代码:
// 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;