reiner_hohn: regex - preg_replace_callback

Beitrag lesen

$eingabe = "[quote][quote][quote]der erste[/quote]der zweite[/quote]der dritte[/quote]";
//$eingabe = "[quote=user1][quote=user2][quote=user3]der erste[/quote]der zweite[/quote]der dritte[/quote]";

function parseTagsRecursive($eingabe){
    $regex = '#[quote]((?:[[1]|[(?!/?quote])|(?R))+)[/quote]#';
    //$regex = '#[quote=([a-z]+)]((?:[[2]|[(?!/?quote])|(?R))+)[/quote]#';
    if(is_array($eingabe){
      $eingabe = '<div>'.$eingabe[2].'</div>';
    //$eingabe = '<div '.$eingabe[1].'>'.$eingabe[2].'</div>';
      }
    return preg_replace_callback($regex, 'parseTagsRecursive', $eingabe);
    }

$ausgabe = parseTagsRecursive($eingabe);

echo "\n\n".$ausgabe."\n\n";

mit die function kann man wunderbar [quote][/quote] umwandeln. das funktionier astrein. ich will aber gerne auch [quote=user][/quote] umwandeln können, doch der regex ist mir jedoch etwas zu mächstig, da komm ich nicht mehr mit klar. kann mir da jemand helfen.

mfg


  1. ↩︎

  2. ↩︎