Suchmuster für Funktion preg-replace gesucht
Hallo,
ich bekomme es nicht hin, das Suchmuster für die Funktion preg_replace funktionierend, passend für meinen Zweck zu erstellen; ich hoffe, mir kann da jemand helfen ;)
Ich habe HTML-Quelltext, bspw:
nun möchte ich ein Suchmuster, sodass ich die Tabelle mit der Klasse "tbTabelle" hier heraus separieren kann (inkl. der untergeordneten Tabelle, nicht aber die 2. Tabelle). Wie kann ich das genau machen?
Vielen Dank und viele Grüße
Stefan
ich bekomme es nicht hin, das Suchmuster für die Funktion preg_replace funktionierend, passend für meinen Zweck zu erstellen; ich hoffe, mir kann da jemand helfen ;)
Ich habe HTML-Quelltext, bspw:
<body>
<div>fghdkghdk</div>
<table class="tbTabelle">
<tr>
<td>test</td>
<td>
<table>
<tr>
<td>test t2</td>
<td>test t2</td>
</tr>
</table>
</td>
</tr>
</table>
<table>
<tr>
<td>test t2</td>
<td>test t2</td>
</tr>
</table>
<span>jckdlsfj</span>
</body>
nun möchte ich ein Suchmuster, sodass ich die Tabelle mit der Klasse "tbTabelle" hier heraus separieren kann (inkl. der untergeordneten Tabelle, nicht aber die 2. Tabelle). Wie kann ich das genau machen?
Vielen Dank und viele Grüße
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 168000
Url: https://administrator.de/forum/suchmuster-fuer-funktion-preg-replace-gesucht-168000.html
Ausgedruckt am: 23.12.2024 um 01:12 Uhr
3 Kommentare
Neuester Kommentar
Ich habe das ganze mal etwas anders gelöst ;)
Problem hierbei ist bloß, das die Formatierung immer zu 100% richtig sein muss, damit er das Ende finden kann. Ansonsten sollte es funktionieren. =)
<?
$content = '<body>
<div>fghdkghdk</div>
<table class="tbTabelle">
<tr>
<td>test</td>
<td>
<table>
<tr>
<td>test t2</td>
<td>test t2</td>
</tr>
</table>
</td>
</tr>
</table>
<table>
<tr>
<td>test t2</td>
<td>test t2</td>
</tr>
</table>
<span>jckdlsfj</span>
</body>';
$content = explode(chr(10), $content);
foreach($content as $id => $value) {
$pos = strpos($value, '"tbTabelle"');
if($pos == true) {
$begin = strpos($value, '<');
$begin_id = $id;
}
unset($pos);
if(isset($begin) && isset($begin_id)) {
if(substr($value, $begin, 8) == '</table>') {
$end_id = $id;
$id_array = $begin_id.'-'.$end_id;
unset($begin, $begin_id, $end_id);
}
}
}
foreach($id_array as $id1 => $value1) {
$value1 = explode('-', $value1);
$start = $value1;
$end = $value1[1];
foreach($content as $id2 => $value2) {
if($id2 >= $start && $id2 <= $end) {
unset($content[$id2]);
}
}
}
$content = implode(chr(10), $content);
echo $content;
?>
Sinnvoller ist es zB. SimpleXML ( http://php.net/manual/en/book.simplexml.php ) mit XPath ( http://www.php.net/manual/en/simplexmlelement.xpath.php ) zu verwenden.