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
Please also mark the comments that contributed to the solution of the article
Content-Key: 168000
Url: https://administrator.de/contentid/168000
Printed on: April 19, 2024 at 18:04 o'clock
3 Comments
Latest comment
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.