2014-05-22 2 views
0

PHP 간단한 HTML DOM 파서를 사용하고 있으며이 div 콘텐츠를 얻을 때까지 everithing이 잘 실행됩니다. 나는 src attr을 얻고, img 태그를 찾고, 모든 태그를 찾을 수있는 모든 방법을 시도했지만, img 태그를 얻을 수는 있지만 width, height 및 alt attr (단지 일부 텍스트 "가 나타나고 다른 문자열은 표시되지 않음).이 img 태그에서 src attr을 얻는 방법

<img width="656" height="370" 
alt="some text " .="" othertetx="" anothertext="" anothertext="" anothertext="" anothertext'="" title="same text in the alt attr " src="http://siteurl/getattach/somedir/somefile.aspx"> 

나는이 문제가 alt = 텍스트가있는 모든 텍스트에서 파서를 혼란스럽게한다고 생각합니다. 이 태그는 브라우저에서 잘 표시되어 있으므로,이

편집 "표준"이어야합니다

대답은 문제가 해결되지 않는 지적

, 나는이 SRC를 얻는 방법을 알고, 문제는이 태그입니다. 시간을내어 질문을 충분히 읽은 후에 중복으로 표시하십시오. 해결 된 답변에서 제공된 코드는 내가 보여준 샘플에서는 작동하지 않습니다.

$img_src = $element->src; 
if(!strstr($img_src, 'http://')) { 
    $img_src = $v . $img_src; 
} 

<img> 요소가 유효한 HTML되지 않습니다

<img width="656" height="370" 
    alt="some text " .="" othertetx="" anothertext="" anothertext="" anothertext="" anothertext'="" title="same text in the alt attr " src="http://siteurl/getattach/somedir/somefile.aspx"> 
+0

parse dom ??? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – Gadonski

+0

요소를 위반하는 것은 아포스트로피입니다. 나는 그것을 어떻게 해결해야할지 모르겠다. –

+0

아마도 부모의 innerHTML을 가져 와서 'src'를 검색하거나 아포스트로피를 제거하고이를 새로운 (숨겨진) 요소로 추가하고 'src'를 읽습니다. (나는 파서가 이것을 할 수 있다고 가정하고있다.) –

답변

0

에서의 src ATTR를 추출하지 않습니다. 속성 선언과 관련된 몇 가지 문제점을 보여줍니다. 이러한 오류를 확인하려면 W3C online validator과 같은 유효성 검사 서비스를 사용하는 것이 좋습니다. 확인을 위해 질문에서 img 태그를 this document으로 감쌌습니다.

그러나 <img> 태그가 유효하지 않은 동안 DOMDocument 클래스는이를 구문 분석 할 수 있습니다. 이처럼 :

$string = <<<EOF 
<img width="656" height="370" 
alt="some text " .="" othertetx="" anothertext="" anothertext="" anothertext="" anothertext'="" title="same text in the alt attr " src="http://siteurl/getattach/somedir/somefile.aspx"> 
EOF; 

$doc = new DOMDocument(); 
@$doc->loadHTML($string); 

$images = $doc->getElementsByTagName('img'); 
echo $images->item(0)->getAttribute('src'); 

출력 : simplehtmldom 클래스가 내장 DOM 확장으로 강력한 아니라고

http://siteurl/getattach/somedir/somefile.aspx 

참고. 그것은 PHP가 내장 된 DOM 확장자가없는 시간에 작성되었습니다. 대부분의 경우 사용법은 현재 사용되지 않을 것으로 간주 될 수 있습니다.

관련 문제