Hallo, ich habe ein Beispiel zu preg_replace_callback auf php.net gefunden und wollte nun anstatt die "[indent]" die "<indent>" ersetzten:
Dies scheint aber nicht zu funktionieren...
Was habe ich falsch gemacht?
//Edit:
Ich habe jetzt nur die eckigen Klammern, mit einem vorangeseztem "\" zu einem "<", bzw. ">" geändert:
Funktioniert! Sorry für das zu frühe posten...
PHP:
<?php
$input = "plain <indent> deep <indent> deeper </indent> deep </indent> plain <indent> test </indent>";
function parseTagsRecursive($input)
{
$regex = '#\<indent>((?:<^\<>|\<(?!/?indent>)|(?R))+)\</indent>#';
if (is_array($input)) {
$input = '<div style="margin-left: 10px">'.$input[1].'</div>';
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$output = parseTagsRecursive($input);
echo $output;
?>
Dies scheint aber nicht zu funktionieren...
Was habe ich falsch gemacht?
//Edit:
Ich habe jetzt nur die eckigen Klammern, mit einem vorangeseztem "\" zu einem "<", bzw. ">" geändert:
PHP:
<?php
$input = "plain <indent> deep <indent> deeper </indent> deep </indent> plain <indent> test </indent>";
function parseTagsRecursive($input)
{
$regex = '#\<indent>((?:[^\<]|\<(?!/?indent>)|(?R))+)\</indent>#';
if (is_array($input)) {
$input = '<div style="margin-left: 10px">'.$input[1].'</div>';
}
return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
$output = parseTagsRecursive($input);
echo $output;
?>
Funktioniert! Sorry für das zu frühe posten...
Zuletzt bearbeitet: