2011-10-05 5 views
-2

가능한 중복 : 나는 문자열을 웹 사이트에 대한
Best methods to parse HTML with PHPpreg_replace이다 이미지 내부 스타일

그들에있을 것입니다 무엇을 텍스트 또는 이미지를 줄 모르고. 이미지 내부 스타일의 대체 이미지를 만들고 싶습니다. style="" 전체는 사이의 스타일을 알지 못하도록 을 제거해야합니다.

필요한 교체 패턴은 무엇입니까?

+0

무엇이 질문입니까? –

+3

DOM 파서를 사용하십시오. – webbiedave

+0

나는이 작업을하기 위해 어떤 패턴을 사용해야 하는지를 알고 싶었다. :) – directory

답변

0

HTML 구문 분석기가 훨씬 강력하기 때문에 정규 표현식을 사용하는 것은 좋지 않습니다. 스타일 속성은 언제나 사소한 변화와 유사 할 것입니다 경우에, 당신은 그것을 변경할 수를 사용할 수 있습니다 : 당신은 그냥 스타일을 제거하려면

$yourStyle = 'style="your-style-goes-here"'; 
$newString = preg_replace('%style="(.*?)"%is', $yourStyle, $string); 

속성을 완전히, 다음 $yourStyle = '';

설정

다시 말하지만, 이렇게하는 것이 가장 좋은 방법은 아니지만 스타일 중간에서 따옴표를 사용하지 않고 스타일 속성을 따옴표로 끝내 었다고 가정하면 작동합니다. 이 같은

0

뭔가 도움이 될 것입니다

$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 />'; 
} 
0

이 도움이 될 것입니다

/(?:style=")(?:[\w\-\:\;\s\%\#]+)(?:\")/i 

그것은 스타일의 대다수 어떤 태그에서 속성을 제거합니다. 기능에 배치하고 점검/교체 할 부품을 공급할 수 있습니다.

관련 문제