0

試しfind('meta[http-equiv="Content-type"]')ましたが、その情報を取得できませんでした。

4

3 に答える 3

3

SimpleHTMLDomは、セレクターで引用符で囲まれた文字列リテラルを使用しません。ただelem[attr=value]です。また、値の比較では大文字と小文字が区別されるようです(大文字と小文字を区別しないようにする方法はあるかもしれませんが、わかりません)*

例えば

require 'simple_html_dom.php';
$html = file_get_html('http://www.google.com/');
// most likely one one element but foreach doesn't hurt
foreach( $html->find('meta[http-equiv=content-type]') as $ct ) { 
  echo $ct->content, "\n";
}

印刷しtext/html; charset=ISO-8859-1ます。

*編集:はい、大文字と小文字を区別しない一致を実行する方法があります。*=代わりに使用してください=

find('meta[http-equiv*=content-type]')

edit2:ところで、それhttp-equiv*=content-typeも一致<meta http-equiv="haha-no-content-types"...します(文字列が属性の値のどこかにあるかどうかだけをテストします)。しかし、私が見つけたのは大文字と小文字を区別しない関数/演算子だけです。私はあなたがこの場合それと一緒に暮らすことができると思います;-)
編集3:それはpreg_match('... / i')を使用し、パターン/セレクターはその関数に直接渡されます。したがって、一致するようなことはできますが、できません。しかし、これが保証された機能であるかどうかはわかりません。http-equiv*=^content-type$http-equiv="Content-type"http-equiv="xyzContent-typeabc"

于 2010-02-06T16:19:25.683 に答える
0

Content-Typeは通常、本文ではなくhttp-responseヘッダーの一部です。xmlドキュメントはどこから入手しましたか?

于 2010-02-06T15:57:48.217 に答える
0

別の方法で記述された場合は続行foreachします。この場合、ブラウザーは大文字と小文字を区別しないと思いますが、phpは大文字と小文字を区別する可能性があります。$this->find('meta');content-type

于 2010-02-06T15:58:04.593 に答える