DOMDocumentを使用してテキストをHTMLとしてロードして処理しています。DOMDocument loadHtmlを使用して正確な入力値をロードする方法
私は問題のカップルがあります
などとしてすぐに私はloadHtml(value)メソッドを使用して入力文字列をロードするように、それは<html><body>
のように複数のタグを追加することに気づい: (1)あなたが使用してテキストをロードする場合loadHTML(value)を呼び出すと、自動的に終了タグが追加されます。それを避ける方法はありますか? DOMDocumentが終了タグを追加しないようにするにはどうすればよいですか?
$value = "Hi there ! <my-custom-tag>";
$doc = new DOMDocument('1.0', 'UTF-8');
// Load HTML
$doc->loadHTML($value);
error_log(" value after loading in html dom - ". $doc->saveHTML());
出力:最後の文以下のようにerror_logにプリント:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>Hi there ! <my-custom-tag></my-custom-tag></p></body></html>
(2)私は括弧のようなURL&lsaquoでテキストを読み込むためにloadHTMLメソッドを使用します。 http://stackoverflow.com&rsaquo; //の後の文字列を取り除くだけです。 DOMDocumentをUrlでそのようなカスタムタグを保持する方法は?
$value = "Hi there ! <http://something.com>";
$doc = new DOMDocument('1.0', 'UTF-8');
// Load HTML
$doc->loadHTML($value);
error_log(" value after loading in html dom - ". $doc->saveHTML());
出力:以下のように最後の文のerror_logにプリント:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>Hi there ! <http:></http:></p></body></html>
のような正規表現演算子を使用する方が理にかなっていますその名前が示すように、 'loadHTML'はHTMLを取得することを想定しています。 HTMLを渡すことができない場合は、それを解析するために他の方法を見つける必要があります。 – miken32