domドキュメントgetElementsByTagNameを使用してウェブサイトのタイトルを取得します。ここphp domドキュメント特殊文字を削除する
は私のコードです:
$doc = new DOMDocument();
@$doc->loadHTML($strData);
$doc->encoding = 'utf-8';
$doc->saveHTML();
$titleNode = $doc->getElementsByTagName("title");
それが正常に動作しますが、タイトルに特殊文字がある場合には、取得したデータは正確ではありません。代わりに "Some More Google Plus Invite Workarounds #wrapper { background:url(/) no-repeat 50% 0; } body { background:#CFD8E2; }
"を取得しています。
私は特殊文字を置き換えるために次のことをやったが、それは仕事didntの:
// Replace all special characters into space
$specialChars = array('~','`','!','@','#','$','%','^','&','*','(',')','-','_','=','+','|','\\',']','[','}','{','"','\'',':',';','/','?','.',',','>','<');
foreach ($specialChars as $a) {
$titleNode = str_replace($a, ' ', $titleNode);
}
イムは、代わりに空のタイトルを取得します。 <title>
値は、このように気にいらないですので、私は
ええと、htmlタグの先頭に「より小さい」(<)がありますか? –
それは..それを読んだ後に、それはCSSスタイルを読むために飛びます。 – nuttynibbles
+1パーサーを使用しています! –