2012-08-06 4 views
0

가능한 중복 :
How to parse and process HTML with PHP?preg_match()를 사용하여 텍스트를 추출하는 방법은 무엇입니까?

내가 1.&nbsp에서 <div로 시작하는 텍스트를 추출하는 변수 $new

<div class="img"> 
<span style="float:left; color:#666;">1.&nbsp;&nbsp;</span> 
<a href="/Books/info/J-R-R-Tolkien/The-Lord-of-the-Rings/0618640150.html?utm_term=lord+of+the+ring_1_1"> 
<img src="http://cdn-img-b-tata.infibeam.net/img/6a53fabc/157/0/9780618640157.jpg?wid=90&hei=113" width="90" height="113" border="0"> 
</a> 
</div> 
<span class="title"> 
<h2 class="simple"><a href="/Books/info/J-R-R-Tolkien/The-Lord-of-the-Rings/0618640150.html?utm_term=lord+of+the+ring_1_1"><em>Lord</em> of the <em>Rings</em></a></h2> 
&nbsp;By 
<a href="/Books/search?author=J R R Tolkien" style="font-size:12px; text-decoration:none;">J R R Tolkien</a> 
<span style="color:#666666; font-size:11px;">[Paperback 2005, 50th Edition]</span> 
</span> 
<div class="price" style="line-height:30px;margin-top:0px;"> 

내가 가진에 저장된 텍스트 다음있다. 가능한 모든 솔루션을 시도했지만 성공하지 못했습니다.

+0

빌리가 사실입니다. 특히 preg_match가 필요한 함수가 아닌 경우 부울을 반환하기 때문에. 네가 많이 해보지 않은 것 같아. – Jerska

+1

REGEX로 HTML을 파싱 하시겠습니까? s/(?

+0

[strip_tags] (http://php.net/strip_tags) – dualed

답변

1

이 모든 HTML을 포함하는 새로운 $로

$ret = preg_replace ("#1\.&nbsp(.+)<div#isU", "$1", $new); 

을 작동합니다.
그래도 정규 표현식만으로는 원하는 것을 얻을 수있는 유일한 방법이 아니며, 특히 최선의 방법은 아닙니다. 그 정말 모든 코드가 있다면

+0

흠, 그것이 완벽하게 작동한다면, 왜 단순한 오프셋 기반 문자열 검색과 부분 문자열 연산이 처음에는 그것을 만들지 않았을까? 정규 표현식보다 문자열 연산에 더 많은 부분이 있습니다. – hakre

0

,이 간단한 대답은

strip_tags($html); 
1

충분합니다 : 당신은하지 않습니다. 이제까지. HTML은 일반 언어가 아니므로 정규 표현식 은 HTML과 연결할 수 없습니다. PHP에서 DOM으로 존재하는 HTML 파서을 사용해야합니다.

정규식이 HTML에서 작동하지 않는 이유에 대한 자세한 내용은 this thread을 읽어보십시오. 조랑말. 그가 온다.

+1

조랑말, 그는 끊임없이 오는 피곤합니다. ̹̤̞̟͎͖̦͓ͧ̔ͩ̈̈ͯͩ̋ẹ͇͕̖͓ͭͨ̈̈ͯͩ̋͘ẹ̢̢͇͕̖̫͖̞̝͇̙̻̻̻͈͔̺̺͕͕ͭͨ͌̈̓ͯ͒̇̉ͩͦ̿̓͆̾ͤ̄̆̽ͬͧͩ͛̄̆̽ͬͧͩ͛̄̆̽ͬͧͩ͛̉̓ͯͮ̒ͨ͘͟͟͟͝͡͡͡ṉ̡̢̢̩͙͇͈͔̺̺͕͕ͬ͌̉̓ͯͮ̒ͨ͡ṉ̡̢̢̢̛̛̛̛̩͙͇͓̻͖͙̞͓̻͖͙̞͓̻͖͙̞͔͓̫͔͓̫͔͓̫͎̜̠̹̯͎̜̠̹̯ͬ͌͗͗͗ͫͫͫ̈̆͋̍̈̆͋̍̈̆͋̍̄ͧ̊̆͋̄ͧ̊̆͋͢͢͡͝͝͝ ̹̤̞̟͎͖̦ͧ̔ͩ –

관련 문제