Html basit dom kullanarak Content-type almak nasıl?

3 Cevap php

Ben denedim find('meta[http-equiv="Content-type"]') ama o bilgiyi almak için başarısız oldu.

3 Cevap

SimpleHTMLDom seçici alıntı dize değişmezleri kullanmak değildir. Bu sadece elem[attr=value]. Ve karşılaştırma value * (orada harf duyarsız hale getirmek için bir yol olabilir, ama ben bilmiyorum) harf duyarlı görünüyor

Örneğin

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";
}

baskılar text/html; charset=ISO-8859-1.

* Edit: evet, *= yerine = kullanımı, bir harf duyarsız eşleşme gerçekleştirmek için bir yol var

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

edit2: btw that http-equiv*=content-type thingy would also match <meta http-equiv="haha-no-content-types"... (it only tests if the string is somewhere in the attribute's value). But it's the only case-insensitive function/operator I could find. I guess you can live with it in this case ;-)
edit 3: It uses preg_match('.../i') and the pattern/selector is directly passed to that function. Therefore you could do something like http-equiv*=^content-type$ to match http-equiv="Content-type" but not http-equiv="xyzContent-typeabc". But I don't know if this is a warranted feature.

Content-Type tipik http-cevap başlıklarının bir parçası değil - Vücutta. Eğer xml belgeyi nereden buldun?

Php olabilir iken ben, tarayıcılar bu durumda durumda duyarlı olmadığını düşünüyorum - content-type farklı yazılı durumunda $this->find('meta'); üzerine foreach giderdim.