2017-10-19 14 views
-1

私はこの質問が10以上の類似の質問を通過したように以前に尋ねられたことを認識していますが、間違っていることを理解しようとしています。私はエラーを取得し続ける警告:DOMDocument :: LoadHTML:空の文字列入力として提供されます。私はこのエラーを非常にシンプルな表現(編集しないでフォーラムからまっすぐしばしば一般的です)を使用して取得しているので、これはイライラしており、PHPとDOMDocumentの新機能だからです。php DOM空文字列が入力エラーとして提供されました

ここでエラーを返す関数の例です:

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'); 

あなたはおそらく私が最終的に自分のページ上のパン粉のためにJSON + LD構造化データを作成しようとしてる私の巧妙な関数名から見ることができますが。一番下の行は、この関数をどのように試しても、空の文字列エラーが発生し続けることです。私の$ html変数は、自分のサイトの特定のものに置き換える必要がありますか?私が欠けている必要があるいくつかのグローバル変数がありますか?これは、Wordpress(ver 4.8.2)に関連しています。

正しい方向に微妙なことをありがとう!

答えて

0

$html変数は未定義です。

PHPにはJavascriptのようなレキシカルスコープはありません。そのため、breadcrumb_json()関数の外で定義したものは関数内ではわかりません。

$htmlbreadcrumb_json($html)に渡す必要があります。

+0

ありがとうございます。それはかなり基本的ですが、私が必要としていたものです。 – TomM0419

+0

@Tom必要に応じて拡張することができますが、どの部分を拡張したいのかを教えてください。 – Gordon

関連する問題