문제

나는 시도했다 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 : btw that http-equiv*=content-type Thingy도 일치 할 것입니다 <meta http-equiv="haha-no-content-types"... (문자열이 속성 값 어딘가에있는 경우에만 테스트합니다). 그러나 그것은 내가 찾을 수있는 유일한 사례에 민감한 기능/연산자입니다. 나는 당신 이이 경우와 함께 살 수 있다고 생각합니다 ;-)
편집 3 : preg_match ( '.../i')를 사용하고 패턴/선택기가 해당 함수로 직접 전달됩니다. 그러므로 당신 ~할 수 있었다 같은 일을하십시오 http-equiv*=^content-type$ 일치합니다 http-equiv="Content-type" 하지만 http-equiv="xyzContent-typeabc". 그러나 이것이 보증 된 기능인지 모르겠습니다.

다른 팁

내용 유형은 일반적으로 신체가 아닌 HTTP- 응답 헤더의 일부입니다. XML 문서는 어디서 얻었습니까?

내가 갈 것 foreach ~에 $this->find('meta'); 다르게 작성된 경우 content-type - 브라우저는이 경우 사례에 민감하지 않지만 PHP 일 수 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top