HTML文字列からすべてのリンクテキストとhrefsを抽出しようとしていますが、ソース文字列がUnicodeで、nodeValueがこれに対処していないようですか?PHP:Unicode nodeValue?
$links = array();
$titles = array();
$dom = new DOMDocument();
$dom->loadHTML($str);
$hrefs = $dom->getElementsByTagName("a");
foreach ($hrefs as $href) {
$links[] = $href->getAttribute("href");
$titles[] = $href->nodeValue;
}
私の元の文字列は次のようになります。
<p><a href='uploads/root/tr_62.pdf'>Türkiye</a></p>
しかし、$タイトルの私の出力は[0]のようになります。
Türkiye
どのように私はのnodeValueは、Unicode文字を尊重することができます?
ありがとうございます!
追加 'ヘッダー( "コンテンツタイプ:text/htmlの;のcharset = UTF-8");'スクリプトに(最初の出力の前に)、それは問題を解決しますか?文字セット; –
私は、ページ上の <!DOCTYPE HTML>
など... –DOMDocumentとすべてのXML関数はUTF-8にデフォルト設定されているので、Unicodeをうまく処理できます。あなたの出力からは、あなたのアプリはUnicodeでない1バイトのエンコーディングを使うか、エンコーディングを宣言できません( ''タグはほとんど無関係ですが、HTTPヘッダともちろん実際のコンテンツです)。 /// PHPコードを別にしておいてください。静的 '車'をコピーアンドペーストすると正しく印刷されますか? –