Backreferenzing bei RegExp funktioniert nicht

tomate

Erfahrenes Mitglied
Hallo zusammen,

bei diesem Code funktioniert nur die Backrefence $1. $2 wird nicht ausgegeben.

Code:
$suchmuster = array("/\*(.+)\*/", "/aa(.+)aa/", "/#/i", "/end/");
$ersetzen = array("<p><b><a href='../dl.php?load=$2'>$1</a></b>", "$2", "<br />- ", "</p><br />");

Wo habe ich mich vertippt?

Viele Grüße und Danke - Tomate
 
Entschuldigung.
Hier nun der komplette Code:

Code:
$string= "
*01 / 2010*
aa01_2010.pdfaa
#Messe
#Prospekte
#Filme
#Wind
#Folien
end";

$suchmuster = array("/\*(.+)\*/", "/aa(.+)aa/", "/#/i", "/end/");
$ersetzen = array("<p><b><a href='../download/download.php?load=$2'>$1</a></b>", "$2", "<br />- ", "</p><br />");
echo preg_replace($suchmuster, $ersetzen, $string );

Das Problem ist nun, das $2 ( nach load= ) nicht ausgegeben wird.
Muss ich das zweite Suchmuster im Array $suchmuster irgendwie beim ersten Suchmuster dazumachen?

Viele Grüße und Danke - Tomate
 
"/\*(.+)\*/" gibt nur ein Resultat zurück. $2 wird also nicht gefüllt
Teste mal "/\*(.+)\*(.+)\*/" mit dem String *01 / 2010*01_2001*.
 
Zurück