2014-11-27 1 views
0

그래서preg_replace이다 교체 html 태그

내가 가진 코드 :

$wzor = '/^<span class=\"person\">(.*?)</span>/'; 
$text = str_replace($wzor, '', $text); 

내 텍스트에서 클래스 사람과 모든 스팬을 제거하고 싶지만 내 코드 내 입력 같다

작동하지 않습니다 :

<ul> 
    <li><span class="label">Spółdzielnia Socjalna Giełda Pracy</span><span class="person">0zł brutto</span></li> 
</ul> 
<ul> 
    <li><span class="label">LOYD SPÓŁKA AKCYJNA</span><span class="person">0zł brutto</span></li> 
</ul> 
<ul> 
    <li><span class="label">Loyd 8 Sp. z o.o.</span><span class="person">0zł brutto</span></li> 
    <li><span class="label">Loyd 1 Sp. z o.o.</span><span class="person">0zł brutto</span></li> 
    <li><span class="label">Loyd 7 Sp. z o.o.</span><span class="person">0zł brutto</span></li> 
</ul> 
<ul> 
    <li><span class="label">Spółdzielnia Socjalna Giełda Pracy</span><span class="person">0zł brutto</span></li> 
</ul> 
<ul> 
    <li><span class="label">Spółdzielnia Socjalna Icelandia</span><span class="person">0zł brutto</span></li> 
</ul> 
<ul> 
    <li><span class="label">Spółdzielnia Socjalna Giełda Pracy</span><span class="person">0zł brutto</span></li> 
</ul>bonusbonus 
<ul> 
    <li><span class="label">Spółdzielnia Socjalna Giełda Pracy</span><span class="person">0zł brutto</span></li> 
</ul>bonus 
+2

[관련] (http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags) ?! – cvsguimaraes

답변

0

정규 표현식을 사용하려면 preg_replace() 함수를 사용해야합니다. 또한 거기에 슬래시 문자를 이스케이프하지 않은 정규식 오류가 발생했습니다. 이 사람은 작동합니다

<span class=\"person(.*?)<\/span> 
1

시작에서 ^은 문자열의 시작 부분에있을 경기를 강제로. 또한,이 일을해야 </span>

의 이스케이프 /있다 :

$wzor = '/<span class=\"person\">(.*?)<\/span>/'; 

또한 preg_replace 대신 str_replace를 사용합니다. ;)

+0

Upvoted - 작동 확인 : https://eval.in/227144 –

+2

regexp에서 '/'를 사용해야하는 경우 다른 문자를 구분 기호로 사용할 수 있습니다. 따옴표를 벗어날 필요가 없습니다. '$ wzor = '# (. *?) #''읽기가 쉽습니다. – axiac