質問

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

役に立ちましたか?

解決

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"ような何かを行います。これが正当な特徴である場合しかし、私は知りません。

他のヒント

ない体で -

のContent-Typeは、通常のhttpレスポンスヘッダの一部です。どこからXML文書を取得したのですか?

私は違っ書かforeachの場合に$this->find('meta');content-typeを行くだろう - 私は、PHPのかもしれませんが、ブラウザが、この場合はケースに敏感ではないと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top