When was PHP behavior about this changed?
From which PHP version is it?
Warning: file_get_contents(): stream does not support seeking in /simple_html_dom.php
Warning: file_get_contents(): Failed to seek to position -1 in the stream in /simple_html_dom.php
include('parser/simple_html_dom.php');
$url = "https://en.wikipedia.org/wiki/Stack_Overflow";
$html = file_get_html($url);
if ($html !== false) {
foreach($html->find('div#mw-content-text') as $item){
$item->plaintext;
}
}
I had the same issue on my page when I moved it from one system to another, I was able to change the simple_html_dom.php
file by removing the offset reference (didn't cause any further problems for me).
On line 75 of simple_html_dom.php
:
$contents = file_get_contents($url, $use_include_path, $context, $offset);
I removed the reference to $offset
:
$contents = file_get_contents($url, $use_include_path, $context);
No my page works fine. Not taking liability for anything else it breaks! :)
Change
function file_get_html(..., $offset = -1,...)
to
function file_get_html(..., $offset = 0,...)
in simple_html_dom.php
You don't need to edit the vendor files. Just change your requests from:
$html = HtmlDomParser::file_get_html( "https://www.google.com/");
to:
$html = HtmlDomParser::file_get_html( "https://www.google.com/", false, null, 0 );
The problem is that the default offset used by Simple HTML DOM is "-1" when you want it to be "0". Luckily it accepts it as a parameter, which means you can change it easily without needing to change the Simple HTML DOM source.
Note: This compatibility issue was fixed in v1.7+
See file_get_contents(): stream does not support seeking PHP
You are working with a remote file. Seeking is only supported for local files.
You probably need to copy the file to your local file system before using file_get_html
. It should work fine on localhost.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With