PHP Fatal error: Appel à une fonction membre find() sur un non-objet cependant ma fonction de travail
J'obtiens cette erreur sur la Ligne 71 de mon code, mais la fonction de cette ligne est exécutée correctement et ne fait que ce que j'attends qu'il fasse.
Cependant, j'ai remarqué que mon journal d'erreur est pleine de ces lignes:
[09-Dec-2013 14:54:02 UTC] PHP Fatal error: Appel à une fonction membre find() sur un non-objet dans /home/sportve/public_html/open_event_common.php sur la ligne 71
Ce que j'ai vérifié pour:
simple_html_dom_parser
est déjà inclus cette fonction que la Ligne 71 l'intention de faire est travail.
Ici est la Ligne 71 de mon code:
$content->find('a.openevent', 0)->innertext = '';
donc sa source de confusion quant à ce qui est à l'origine de l'affichage de cette erreur dans mon fichier journal des erreurs?
Edit: voici le code complet:
<?php
$url = "static/" . $cat_map[$cat]['url'];
$html = file_get_html($url);
$content = $html->find('div#event-pane > div#e' . $event_id, 0);
$content->find('a.openevent', 0)->innertext = '';
$content->find('h3.lshtitle', 0)->onclick = '';
$content->find('h3.lshtitle', 0)->tag = 'div';
$content->find('div.lshtitle', 0)->class = 'ttl';
?>
$content
n'est pas un objet. Vous devez montrer que le reste du codeMontrer où et comment
$content
est réglé. Si qui contient des variables, montrent que c'est dans ces variables à l'époque (var_dump(..)
)B vérifier de nouveau que j'ai mis à jour la question
vérifier à nouveau que j'ai mis à jour la question
Après la création de la
$content
variable, vous devez vous assurer que votre appel à $html->find()
renvoie en fait ce que vous pensiez. Si il ne trouve pas tous les éléments, alors c'est à cause quelconque des $content->find()
appels ne fonctionne pas.
OriginalL'auteur user3080061 | 2013-12-09
Vous devez vous connecter pour publier un commentaire.
Sur la base des informations que vous êtes de fournir la meilleure et la plus pratique, la solution est tout simplement de faire une vérification pour voir si
$html
et$content
est vide ou pas.9 fois sur 10, quand vous obtenez une “Appel à une fonction membre [quelle que soit la fonction est] sur un non-objet” que, fondamentalement signifie que l'objet n'existe tout simplement pas. Signification de la variable est vide. Voici votre code retravaillé:
Aussi, j'ai ajouté une vérification pour voir si le
$url
est vide.Normal
if
/else
contrôles ne seront pas affecter les performances & de la vitesse. Techniquement, peut-être que votre code est maintenant au 1/10 000 ème de seconde plus lent. J'espère que vous pouvez traiter avec un niveau de perte de vitesse! 😉merci u beaucoup !
je n'avais pas remarqué que yr code fait problème dans mon appli comme sa construction en sorte que, si la
$content
est vide ensuite rediriger vers la page d'accueil thru-tête emplacementheader("location: /");
maintenant, cela ne fonctionne pas des idées?if (!empty($html)) {
ne fonctionne pas pour moi, maisif ($html->find('html') || $html->find('body')) {
fait.OriginalL'auteur JakeGould