Funktionsproblem mit preg_replace und explode

ruNN0r

Erfahrenes Mitglied
Hi,
viele mögen hier ja nicht viel Text also gibt es erstmal die Funktion und darunter die kurze erklärung ;)
PHP:
function dateien($datei){
  global $_db_datei_upload;

  $output="<fieldset style='margin-bottom:6px;'>";
  $output.="<legend style='font-weight:bold;'>Angehängte Dateien</legend>";
  $newdatei=explode(";",$datei);
  $output.=$newdatei[1];
  $output.="</fieldset>";
  return $output;
}

function bbcode($text)
{
    $text = preg_replace("/\[DATEIEN=(.*)\]/isU",dateien('$1'), $text);
    $text = nl2br($text);
    return $text;
}

Kurz gesagt die daten die ich mit [DATEIEN=***] eingeben (z.B. 1;3;4;5) kommen an in der Funktion dateien. jedoch das explode (sowie das später nachfolgende foreach) will einfach nicht funktionieren. Der gibt mir den String 1;3;4;5 aus aber splittet den nicht... ich raffs net... jemand eine Idee?

THX im vorraus
 
Moin,

du musst über die Flag e (eval) dafür sorgen, dass der Rückgabewert der Funktion ausgewertet wird:
Code:
$text = preg_replace("/\[DATEIEN=(.*)\]/isUe",'dateien("$1")', $text);
 
hat geklappt! Vielen Dank.

hast du evtl. eine Seite wo mehr über die Flag steht? finde so nichts... möchte mich da gerne reinlesen.

Danke nochmal
 
Zurück