获取file_get_contents错误 - simple_html_dom.php XAMPP

时间:2017-10-16 00:00:06

标签: php

我遇到的问题如下:

Warning: file_get_contents(): Unable to find the wrapper "https" - 
did you forget to enable it when you configured PHP? in 
<b>C:\xampp\htdocs\test_crawl\simple_html_dom.php</b> on line <b>75</b><br 
/>
<br />
<b>Warning</b>:  file_get_contents(https://www.yahoo.com): failed to open 
stream: Invalid argument in 
<b>C:\xampp\htdocs\test_crawl\simple_html_dom.php</b> on line <b>75</b><br 
 />

我做了一些研究,发现有一些帖子说extension=php_openssl.dll中的php.ini取消注释但是当我这样做并重新启动我的服务器时却没有。我使用的脚本如下:

$url = 'https://yahoo.com'
function CrawlMe($url)
{
$html = file_get_html($url);
return json_encode($html);
}

不确定为什么它不起作用会感激你的帮助..

以下是$contents = file_get_contents($url, $use_include_path, $context, $offset);

错误的功能
function file_get_html($url, $use_include_path = false, $context=null, 
$offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, 
$target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, 
$defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
{
// We DO force the tags to be terminated.
$dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, 
$target_charset, $stripRN, $defaultBRText, $defaultSpanText);
// For sourceforge users: uncomment the next line and comment the 
// retreive_url_contents line 2 lines down if it is not already done.
$contents = file_get_contents($url, $use_include_path, $context, $offset);
// Paperg - use our own mechanism for getting the contents as we want to 
control the timeout.
//$contents = retrieve_url_contents($url);
if (empty($contents) || strlen($contents) > MAX_FILE_SIZE)
{
    return false;
}
// The second parameter can force the selectors to all be lowercase.
$dom->load($contents, $lowercase, $stripRN);
return $dom;
}

1 个答案:

答案 0 :(得分:0)

simple_html_dom.php第75行是什么?从你发布的内容我可以说是

$url = 'https://yahoo.com'

缺少一个半冒号,它应该是:

$url = 'https://yahoo.com';

- 看到代码后编辑......

您将偏移设置为-1。这意味着从文件末尾开始阅读。根据文件

  

远程文件不支持寻找(偏移)。试图   寻找非本地文件可能适用于小偏移,但这是   不可预测,因为它适用于缓冲流。

您的最大长度设置为负1.根据文件:

  

如果找不到文件名,则会生成E_WARNING级别错误,   maxlength小于零,或者如果寻求指定的偏移量   流失败了。

您无需指定所有这些参数,这样可以正常工作:

$file = file_get_contents('https://www.yahoo.com');