file_get_contents(): stream does not support seeking / Wann wurde PHP das Verhalten zu dieser geändert?
Wann wurde PHP das Verhalten zu dieser geändert?
Ab, welche PHP-version es ist?
Warning: file_get_contents(): stream does not support seeking in
/simple_html_dom.phpWarning: file_get_contents(): Failed to seek to position -1 im 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;
}
}
- diese ocurrs in PHP 7.1, aber im 7.0 d 5.6 funktionieren.
- Diese Kompatibilität Problem wurde behoben, ab 1.7
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen file_get_contents(): stream does not support seeking PHP
Arbeiten Sie mit einer remote-Datei. Suchen, nur unterstützt für lokale Dateien.
Werden Sie wahrscheinlich benötigen, kopieren Sie die Datei auf Ihrem lokalen Dateisystem, bevor Sie mit
file_get_html
. Es sollte funktionieren auf localhost.Ich hatte das gleiche Problem auf meiner Seite, wenn ich es verschoben, von einem system zu einem anderen, ich war in der Lage, ändern Sie die
simple_html_dom.php
Datei durch entfernen der offset-Referenz (nicht die Ursache für weitere Probleme für mich).Auf Linie 75 von
simple_html_dom.php
:Ich den Verweis entfernt, um
$offset
:Nicht meine Seite funktioniert einwandfrei. Nicht unter die Haftung für etwas, was es sonst bricht! 🙂
Ändern
zu
in simple_html_dom.php
Brauchen Sie nicht zu Bearbeiten, die vendor-Dateien. Ändern Sie einfach Ihre Wünsche aus:
zu:
Das problem ist, dass die Standard-offset verwendet, die von Einfachen HTML-DOM, ist "-1", wenn Sie wollen, dass es "0". Zum Glück nimmt es als parameter, was bedeutet, können Sie es leicht ändern, ohne änderung der Simple HTML DOM Quelle.
Hinweis: Diese Kompatibilität Problem wurde behoben in v1.7+
In der
simple_html_dom.php
Datei, Suche für$offset
und entfernen Sie es aus—es sollte in den Zeilen 75 und 76. Alles funktioniert Prima dann.Andere haben gemeinsam die Lösung, aber niemand mitgeteilt hat warum. Ich weiß nicht, warum speziell dieses ist der Unterschied zwischen PHP 7.0 & 7.1, aber die PHP.net Dokumente für diese Funktion sagen:
Kann ich bestätigen, dass das entfernen der parameter offset in
file_get_contents
auf Linie 75 arbeitet für mich und/oder die Einstellung der offset auf 0 in derfile_get_html
Funktion on line 70 funktioniert auch.Ich denke, dass der offset-parameter wurde nie dazu genutzt werden, um mit nicht-lokalen Dateien seit:
Hoffe, das hilft klären Verwechslungen. Mit externen Quellen, macht es Sinn, zu starten streaming von Anfang an.
Setzen $offset = 0
Arbeitet!