卷曲返回选项

时间:2019-02-25 14:50:35

标签: php

我正在尝试从此处获取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流。 我需要一些额外的功能吗?

谢谢。

3 个答案:

答案 0 :(得分:1)

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

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$res应该包含您期望的数据。我可以确认这对我有用。如果不适合您,请在调用curl_exec之后尝试以下操作:

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

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

答案 1 :(得分: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);

答案 2 :(得分: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;