2017-10-19 32 views
-1

Je réalise que cette question a déjà été posée car j'ai déjà rencontré plus de 10 questions similaires, mais j'essaie de comprendre ce que je fais de mal. Je continue d'obtenir l'erreur Attention: DOMDocument :: LoadHTML: Chaîne vide Fourni en entrée. C'est frustrant parce que je reçois même cette erreur en utilisant des expressions extrêmement simples (souvent génériques, directement à partir de forums sans édition) et je me rends compte que c'est parce que je suis nouveau dans les fonctions PHP et DOMDocument.php DOM Document chaîne vide fourni comme erreur de saisie

Voici un exemple de fonction qui renvoie l'erreur:

function breadcrumb_json() { 
    $dom = new DOMDocument(); 
    $libxml_previous_state = libxml_use_internal_errors(true); 

    // Populate $dom with $content, making sure to handle UTF-8. 
    // Also, make sure that the doctype and HTML tags are not added to our 
    // HTML fragment. http://stackoverflow.com/a/22490902/3059883 
    $dom->loadHTML($html); 
    // Create an instance of DOMXpath. 
    $xpath = new DOMXpath($dom); 

    // Get images then loop through and add additional classes. 
    $imgs = $xpath->query("//img"); 
    foreach ($imgs as $img) { 
     $existing_class = $img->getAttribute('class'); 
     echo $existing_class; 
    } 
} 

add_action('wp_footer', 'breadcrumb_json'); 

Vous pouvez probablement voir de mon nom de la fonction intelligente que je suis finalement essayer de créer des données structurées JSON + LD pour panure sur mes pages. La ligne du bas est, peu importe comment j'essaie cette fonction, je continue à obtenir l'erreur de chaîne vide. Ma variable $ html doit-elle être remplacée par quelque chose de spécifique sur mon site? Y a-t-il une variable globale dont j'ai besoin? C'est dans Wordpress (ver 4.8.2) au cas où c'est pertinent.

Merci pour le coup de pouce dans la bonne direction!

Répondre

0

Votre variable $html est indéfinie.

PHP n'a pas de portée lexicale comme Javascript a, donc tout ce que vous définissez en dehors de votre fonction breadcrumb_json() n'est pas connu dans la fonction. Vous devez passer $html à breadcrumb_json($html).

+0

Merci. C'est assez basique mais exactement ce dont j'avais besoin. – TomM0419

+0

@Tom Je peux le développer en cas de besoin, mais il faudrait que vous me disiez quelles parties vous voudriez que je développe. – Gordon