일반적으로 HTML 태그에서 스타일 속성을 제거하려면이 코드를 사용하십시오.PHP img 태그에서만 HTML 태그에서 스타일 속성을 제거하는 방법은 무엇입니까?
$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
그러나, 지금은 단지 IMG
태그에 스타일 HTML 태그에서 속성을 제거 할.
어떻게 할 수 있습니까?
일반적으로 HTML 태그에서 스타일 속성을 제거하려면이 코드를 사용하십시오.PHP img 태그에서만 HTML 태그에서 스타일 속성을 제거하는 방법은 무엇입니까?
$output = preg_replace('/(<[^>]+) style=".*?"/i', '$1', $input);
그러나, 지금은 단지 IMG
태그에 스타일 HTML 태그에서 속성을 제거 할.
어떻게 할 수 있습니까?
PHP에서 HTML을 조작해야하는 경우 DOM 파서를 사용하는 것이 더 안전합니다.
$html = <<<DATA
<body>
<span style="new">Don't modify it</span>
<span style="old">Don't modify it</span>
<img style="Remove-me" src="img.jpg">
<img src="img.jpg" title="Don't modify it">
</body>
DATA;
// Initializing the DOM tree with an HTML string above
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$imgs = $xpath->query('//img[@style]'); // Fetch all img tags having style attribute
foreach($imgs as $img) {
$img->removeAttribute('style'); // Remove the style attribute
}
echo $dom->saveHTML(); // Show the modified HTML
가 PHP demo 참조 : 예를 들어, 여기 특성을 style
속성을 가진 모든 img
태그를 얻을 만 제거 할 수있는 DOMDocument/DOMXPath에 따라 일부 코드입니다.
다른 방법으로해야합니다. 스타일을 첫 번째 그룹으로 캡처하고 아무 것도 대체하지 않습니다.
$output = preg_replace('/<\s*img[^<>]+?(style\s*=\s*[\'\"][^\'\"]+[\'\"])/i', '', $input);
귀하의 경우에는'<'로'<'를 변경하지 않으시겠습니까? 어쨌든 정규식으로 html을 조작하면 항상 오류가 발생하기 쉽고 적절한 xml 파서를 사용해야합니다. – Felk
예를 들어 보여 주시겠습니까? –