Hier ist meine string:regex alle Vorkommen bbcode Stil nicht ersetzen
$str="[url=/someurl]Click Here[/url] [url=/someurl]Click Here2[/url]";
Hier ist mein Code:
$str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
Meine Ausgabe wandelt die erste URL bbcode Stil Teil aber die zweite wird auch nicht transformiert.
Was ich suche ist ein globaler Regex-Ersatz. Nicht sehr gut mit regex so weiß ich wirklich nicht, was zu tun Der Zweck ist, für die preg_replace
both bbcode urls
Rechnung zu
UPDATE
IST HIER mein Code: $str=preg_replace('/[url=(.+?)](.+?)[\/url]/s', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
Und hier ist Zeichenfolge :
$str="ou can call my cell phone, email or text message me via my contact info on my profile.
[url=/profile/number]Click Here[/url]
Hope to hear from you all soon !!
[url=dasasdasd]asdasdasd[/url]";
hier ist meine Funktion:
function bbcode($str) {
$str=preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/s', '<a href="\1" style="text-decoration:none;color:#336699">\2</a>', $str);
return $str;
}
Ich kann das Problem mit Ihrem aktuellen Beispiel nicht reproduzieren. –
@CasimiretHippolyte Theres einige neue Zeilen und Geschwüre dazwischen ändert das das Ergebnis? – slicks1
Ja, weil der Punkt '.' standardmäßig nicht mit Zeilenvorschüben übereinstimmt. Um dieses Verhalten zu ändern, fügen Sie den Modifikator 's' hinzu. –