2012-12-12 2 views
-5

가능한 중복은 :PHP의 HTML 파일에서 모든 <img> 태그의 'alt'속성을 모두 제거하는 방법은 무엇입니까?

<img src="images/sample.jpg" alt="xyz"/> 

은 이제 HTML 파일의 모든 태그에 존재하는 모든 같은 ALT 태그를 제거 할 같은
Remove style attribute from HTML tags

현재 이미지는 보이는 PHP 코드 자체가 alt 속성의 외양을 모두 대체해야합니다. 출력은 다음과 같아야합니다 <img src="images/sample.jpg" /> 어떻게 PHP로 할 수 있습니까?

미리 감사드립니다.

+3

[당신은 무엇을 시도?] (http://whathaveyoutried.com는) –

+0

당신은 아무것도 시도? PHP에서 [DOM] (http://php.net/dom)에 대해 읽었습니까? – Touki

+3

+2 - 정말요? upvote받을 자격이 질문에 무엇입니까 ?? –

답변

1

HTML에 대한 사용 DOMDocument 분석/조작. 아래 예제에서는 HTML 파일을 읽고 img 태그에서 alt 속성을 제거한 다음 HTML을 인쇄합니다.

$dom = new DOMDocument(); 
$dom->loadHTMLFile('file.html'); 

foreach($dom->getElementsByTagName('img') as $image) 
{ 
    $image->removeAttribute('alt'); 
} 

echo $dom->saveHTML(); // print the modified HTML 
+0

Thnks @MrCode가 도움이됩니다. 그것은 나를 위해 일했습니다. – PHPLover

0

파일을 읽으십시오. 당신은

$fileContent = file_get_contents('filename.html'); 
$fileContent = preg_replace('/alt=\"(.*)\"/', '', $fileContent); 
file_put_contents('filename.html', $fileContent); 

파일이이 alt 속성을 가져야한다 유효한 XHTML을 들어

+1

-1 for [regexp 사용] (http://stackoverflow.com/a/1732454/1607098). * 정규식 수정 * – Touki

+0

Touki 감사합니다. 가장 좋은 방법은 아닐지 모르지만 그게 효과가 있습니다 ... – AndVla

0

쓸 수 있는지 확인 파일을 읽을 file_get_contents()를 사용할 수 있습니다. 이 같은

뭔가 작동합니다 :

$xml = new SimpleXMLElement($doc); // $doc is the html document. 
foreach ($xml->xpath('//img') as $img_tag) { 
    if (isset($img_tag->attributes()->alt)) { 
     unset($img_tag->attributes()->alt); 
    } 
} 
$new_doc = $xml->asXML(); 
1

먼저 수정하려는 문서 소스를 확보해야합니다. 서버의 일부 html 파일을 편집하거나 요청에 의해 생성 된 html 출력을 편집하려는 경우 명확하지 않습니다. ...

이 답변에서는 HTML로가는 방법을 단계별로 설명합니다. file_get_contents('filename.html'); 또는 some magic with output buffering 일 수 있습니다. alt 속성이 당신이 당신이 빈 문자열로 설정해야한다 "제거"할 경우, 유효하는 HTML이 필요하기 때문에

:

you don't want to parse HTML with regular expressions 때문에 당신은 파서를 사용해야합니다.

이 작동합니다 :

$doc = DOMDocument::loadHTML($myhtml); 
$images = $doc->getElementsByTagName('img'); 

foreach($images as $img) { 
    $image->setAttribute('alt', ''); 
} 

$myhtml = $doc->saveHTML();