ugrás a tartalomhoz

Stringből string kinyerése két string között :P

ROCKO86 · 2011. Feb. 1. (K), 16.01
Sziasztok!

Egy HTML file tartalmát beolvastam file_get_contents-cel egy - mondjuk - $html_file változóba. Tökéletesen működik, a változó ugye így néz ki:
<html>
<head>
...
</head>
<body>
...
<div id="ez_a_lenyeg">
<p>Itt a szöveg, amit szeretnék kinyerni</p>
<p>Meg itt</p>
<p>Meg még mondjuk itt is :)</p>
<div>
<p>itt is van egy div, tehát van még egy lezáró div tag</p>
</div>
</div>
<div id="ez_is_egyedi_id">
...
</div>
...
</body>
</html>

A feladat az, hogy egy string-be szeretném kinyerni a '<div id="ez_a_lenyeg">' és az azt bezáró '</div>' szövegek közötti tartalmat.
Nehezíti a feladatot, hogy div van a div-ben, így a '</div>' többször is előfordul, viszont a nekem szükséges '</div>' után van egy egyedi azonosítójú divem, amivel esetleg lehet operálni.

Nem tudom, ez mennyire érthető így, illetve, hogy mennyire láma kérdés, én Guglin nem találtam semmi használhatót. :S

Előre is köszi!
 
1

Reguláris kifejezések, HTML parser

Poetro · 2011. Feb. 1. (K), 17.55
Használhatsz valamilyen HTML parser-t (QueryPath, phpQuery, PHP Simple HTML DOM Parser) amivel kereshetsz az elemekben általában DOM függvényekkel, CSS kiválasztókkal vagy XPath-tal. Ezen kívül írhatsz reguláris kifejezést (preg_match), vagy használhatsz string keresési függvényeket (strpos, strrpos, strstr), amivel megkeresed az egyik majd a másik elem pozícióját.
2

DOMDocument

solkprog · 2011. Feb. 1. (K), 18.49
vagy használhatja a PHP saját DOM osztályait .Bár nem tudom mennyire működnek megbízhatóan...
3

A megoldás

ROCKO86 · 2011. Feb. 1. (K), 19.16
Az utókornak:
A problémát a PHP Simple HTML DOM-mal sikerült megoldani végül.
A manual elég részletes, minden benne van: http://simplehtmldom.sourceforge.net/manual.htm

A többieknek köszönöm szépen a segítséget!