moin,
$pattern = "~$link[begriff]~i";
Ich verstehe zwar nicht warum, aber es scheint zu funktionieren.ein regular expression braucht <delimiter> - die teile, die aussen gleich sein müssen. dieser delimiter darf im pattern nicht, oder nur escaped (mit '') vorkommen.
jetzt musst du ja dein pattern so betrachten, dass der inhalt der variable drin steht. wenn dann in deinem link ein '/' vorkomt (wahrscheinlich) und du aber auch '/' als delimiter nimmst, geht das schief.
andreas
Hallo Andreas.
Danke für deine Erklärung. Das Problem ist nur, der $link[begriff] ist immer nur ein Wort und es kommen keinerlei Sonderzeichen vor, also auch kein '/'. Es war ein Zufall, dass ich die Tilde als Delimeter probierte, aber mit bspw. '/' oder '#' funktionierte es nicht und ich verstehe beim besten Willen nicht warum.
Und warum ich "~$link[begriff]~i"; nicht einfach direkt als Pattern ins preg_replace(); schreiben kann, sondern erst in eine Variable schreiben muss, ist mir auch schleierhaft.
Aber aus Regular Expressions wurde und werde ich nie schlau.
Gruß,
Tom