file_get_contents(): le flux ne prend pas en charge la recherche de / Quand PHP comportement sur ce qui a changé?
Quand PHP comportement sur ce qui a changé?
À partir de laquelle la version de PHP est-il?
Warning: file_get_contents(): le flux n'a pas de soutien de la recherche dans
/simple_html_dom.phpWarning: file_get_contents(): Failed to chercher à la position -1 dans le ruisseau en
/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;
}
}
cela apparaît en PHP 7.1, mais dans la 7.0 d 5.6, beau travail.
Ce problème de compatibilité a été corrigé dans la 1.7 à partir de
Ce problème de compatibilité a été corrigé dans la 1.7 à partir de
OriginalL'auteur re1 | 2017-03-09
Vous devez vous connecter pour publier un commentaire.
Voir file_get_contents(): le flux ne prend pas en charge la recherche de PHP
Vous travaillez avec un fichier distant. La recherche est uniquement pris en charge pour les fichiers locaux.
Vous avez probablement besoin de copier le fichier sur votre système de fichiers local avant d'utiliser
file_get_html
. Il devrait fonctionner correctement sur localhost.Selon le changelog php.net/manual/en/function.file-get-contents.php il n'y a eu aucun changement concernant la recherche sur des fichiers distants. C'est pourquoi je suppose que vous avez déjà travaillé avec des fichiers locaux pour qui la recherche est fine (ou vous où de la chance, car parfois, la recherche pourrait travailler sur de petites plages pour les fichiers distants, trop, selon la doc).
merci. >parfois, la recherche pourrait travailler sur de petites plages pour les fichiers distants, trop, selon la doc
OriginalL'auteur le_m
J'ai eu le même problème sur ma page lorsque je l'ai déplacé à partir d'un système à l'autre, j'ai été en mesure de changer le
simple_html_dom.php
fichier en supprimant le décalage référence (n'a pas causer plus de problèmes pour moi).Sur la ligne 75 de
simple_html_dom.php
:J'ai supprimé la référence à
$offset
:Pas ma page fonctionne très bien. Ne pas prendre la responsabilité pour autre chose il se casse! 🙂
A sauvé la journée, Génie.
Vous avez absolument le meilleur
A voté, cela fonctionne parfaitement et doivent être acceptés réponse:)
Vous avez sauvé ma journée, voté jusqu'
OriginalL'auteur Rmj86
Changement
à
dans simple_html_dom.php
Il fonctionne Merci
OriginalL'auteur Neibce
Vous n'avez pas besoin de modifier le fournisseur de fichiers. Il suffit de changer vos demandes de:
:
Le problème est que le décalage par défaut utilisé par Simple HTML DOM est "-1" si vous voulez être à "0". Heureusement, il l'accepte comme paramètre, ce qui signifie que vous pouvez changer facilement sans avoir besoin de modifier le Simple HTML DOM source.
Remarque: Ce problème de compatibilité a été corrigé dans la v1.7+
La réponse est correcte si l'aide d'un Compositeur version
C'est la bonne réponse, peu importe où vous obtenez Simple HTML DOM 😉
OriginalL'auteur Chuck Le Butt
Dans le
simple_html_dom.php
fichier, recherche pour$offset
et retirez—il devrait être dans les lignes 75 et 76. Tout fonctionne bien alors.OriginalL'auteur ahmed.soli
D'autres ont partagé la solution, mais personne n'a partagé pourquoi. Je ne sais pas précisément pourquoi ce qui est différent entre PHP 7.0 & 7.1, mais le PHP.net docs pour cette fonction dire:
Je peux confirmer que la suppression d'un paramètre de décalage dans
file_get_contents
sur la ligne 75 fonctionne pour moi et/ou le réglage de l'offset à 0 dans lefile_get_html
fonction sur la ligne 70 fonctionne aussi.Je suppose que le paramètre offset n'a jamais été conçu pour être utilisé avec les fichiers locaux depuis:
Espère que cela aide à dissiper toute confusion. Avec des sources externes, il est logique de commencer le streaming depuis le début.
OriginalL'auteur Crazycoolcam
$Offset = 0
Qui travaille!
OriginalL'auteur Carlos Diaz