2016-07-22 19 views
0

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_replaceboth 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; 
} 
+0

Ich kann das Problem mit Ihrem aktuellen Beispiel nicht reproduzieren. –

+0

@CasimiretHippolyte Theres einige neue Zeilen und Geschwüre dazwischen ändert das das Ergebnis? – slicks1

+0

Ja, weil der Punkt '.' standardmäßig nicht mit Zeilenvorschüben übereinstimmt. Um dieses Verhalten zu ändern, fügen Sie den Modifikator 's' hinzu. –

Antwort

2

Die [] sind Sonderzeichen in Regex. Sie sind Zeichenklassen und erlauben einen der Charaktere darin.

See: https://regex101.com/r/mN4tN9/1

[url=(.+?)] 

vs:

\[url=(.+?)\] 

(regex101 scheint so aufgehört zu arbeiten, um nicht zweiten Link posten)

für eine funktionsfähige Demo des Ersatzes sehen : https://eval.in/610316.

+0

ich habe meine Funktion hinzugefügt – slicks1

+0

@ slicks1 Also das 'HIER IST mein Code:' ist nicht Ihr tatsächlicher Code, richtig? – chris85

+0

das ist Teil der Funktion ist eigentlich der gleiche Code Sory – slicks1

Verwandte Themen