가능한 중복 : 나는 문자열을 웹 사이트에 대한
Best methods to parse HTML with PHPpreg_replace이다 이미지 내부 스타일
그들에있을 것입니다 무엇을 텍스트 또는 이미지를 줄 모르고. 이미지 내부 스타일의 대체 이미지를 만들고 싶습니다. style=""
전체는 사이의 스타일을 알지 못하도록 을 제거해야합니다.
필요한 교체 패턴은 무엇입니까?
가능한 중복 : 나는 문자열을 웹 사이트에 대한
Best methods to parse HTML with PHPpreg_replace이다 이미지 내부 스타일
그들에있을 것입니다 무엇을 텍스트 또는 이미지를 줄 모르고. 이미지 내부 스타일의 대체 이미지를 만들고 싶습니다. style=""
전체는 사이의 스타일을 알지 못하도록 을 제거해야합니다.
필요한 교체 패턴은 무엇입니까?
HTML 구문 분석기가 훨씬 강력하기 때문에 정규 표현식을 사용하는 것은 좋지 않습니다. 스타일 속성은 언제나 사소한 변화와 유사 할 것입니다 경우에, 당신은 그것을 변경할 수를 사용할 수 있습니다 : 당신은 그냥 스타일을 제거하려면
$yourStyle = 'style="your-style-goes-here"';
$newString = preg_replace('%style="(.*?)"%is', $yourStyle, $string);
속성을 완전히, 다음 $yourStyle = '';
다시 말하지만, 이렇게하는 것이 가장 좋은 방법은 아니지만 스타일 중간에서 따옴표를 사용하지 않고 스타일 속성을 따옴표로 끝내 었다고 가정하면 작동합니다. 이 같은
뭔가 도움이 될 것입니다
$data = array(
'<img src="hello/test.png" />',
'<img src="hello/test.png"/>',
'<img src="hello/test.png">',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0" />',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0"/>',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" border="0">',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black" />',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black"/>',
'<img src="mama" style="blabla; background-color: #98473; border: 1px solid black">',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama" />',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama"/>',
'<img style="blabla; background-color: #98473; border: 1px solid black" src="mama">',
);
foreach($data as $texttosearch){
echo htmlentities($texttosearch).' => '.htmlentities(preg_replace('/(<img .*?)(style=("|\').*?("|\'))(.*?(\/?)>)/i', '$1$5', $texttosearch)).'<br />';
}
이 도움이 될 것입니다
/(?:style=")(?:[\w\-\:\;\s\%\#]+)(?:\")/i
그것은 스타일의 대다수 어떤 태그에서 속성을 제거합니다. 기능에 배치하고 점검/교체 할 부품을 공급할 수 있습니다.
무엇이 질문입니까? –
DOM 파서를 사용하십시오. – webbiedave
나는이 작업을하기 위해 어떤 패턴을 사용해야 하는지를 알고 싶었다. :) – directory