Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从给定的HTTPS url获取HTML内容_Php_Parsing_Curl_File Get Contents - Fatal编程技术网

Php 从给定的HTTPS url获取HTML内容

Php 从给定的HTTPS url获取HTML内容,php,parsing,curl,file-get-contents,Php,Parsing,Curl,File Get Contents,我必须从HTTPS url下载HTML内容来解析几个链接 我可以在非HTTPS url中使用以下内容进行操作: 文件\u获取\u内容 我尝试使用以下代码: $ch = curl_init('http://kickass.so/best-new-restaurant-s01e01-italian-cuisine-hdtv-x264-daview-t10113796.html'); curl_setopt_array($ch, array( CURLOPT_SSL_VERIFYPEE

我必须从HTTPS url下载HTML内容来解析几个链接

我可以在非HTTPS url中使用以下内容进行操作:

文件\u获取\u内容

我尝试使用以下代码:

    $ch = curl_init('http://kickass.so/best-new-restaurant-s01e01-italian-cuisine-hdtv-x264-daview-t10113796.html');
curl_setopt_array($ch, array(
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_VERBOSE => true,
    CURLOPT_CAINFO => 'I:/dev/ServerPHP/movieGather/UniServerZ/core/apache2/server_certs/server.crt',
));

if (false === curl_exec($ch)) {
    echo "Error while loading page: ", curl_error($ch), "\n";
}

但它不起作用。有什么建议吗?

如果您知道并信任源,并且源将始终是同一个站点,那么不要对其进行严格的SSL验证

这是另一个答案,所以:

试试这个

$url = 'https://www.example.com/abc';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Blindly accept the certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

// decode response
curl_setopt($ch, CURLOPT_ENCODING, true);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
在此处查看更多选项

http://php.net/manual/en/function.curl-setopt.php

我尝试了你的解决方案,但varèu dump给了我这样的结果:string(11452)“23ièrèFèoèjè25; OIðNÝdèNlèc)™ÌÌçuƒ、a\D1çu R5±¨j÷1öQæIö339; Iîîf²等修改并添加了verifyhost false。这有什么区别吗?您的服务器支持SSL吗?它在其他地方/站点/等工作吗?发送的内容是gzipped吗?谢谢您的帮助。我用不同的HTTPS URL尝试了这个脚本,它工作正常……但我不是从这个url中提取HTML内容:谢谢
http://php.net/manual/en/function.curl-setopt.php
function nget($url)
{
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_REFERER, $url);

    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($curl, CURLOPT_POST, FALSE);

    curl_setopt($curl, CURLOPT_HEADER, TRUE);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($curl, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($curl, CURLOPT_FAILONERROR, TRUE);
    curl_setopt($curl, CURLOPT_ENCODING, TRUE);

    curl_setopt($curl, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($curl, CURLOPT_COOKIEFILE, 'cookie.txt');

    curl_setopt($curl, CURLOPT_HTTPHEADER, ['text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9']);

    curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36');

    $content = curl_exec($curl);
    curl_close($curl);
    return $content;
}

$url = 'https://example.com';
$m = nget($url);
var_dump($m);