php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.06.2005, 12:26  
Gast
 
Beiträge: n/a
Standard [Erledigt] Reguläre Ausdrücke ersetzt Links im Text nicht Richtig

Hallo!

Situation:
In einem mehrzeiligen Text sollen mittels eines Regulären Ausdruckes und der PHP-Funktion preg_replace() alle Hyperlinks durch
HTML-Links ersetzt werden.
Beispiel:
aus blabla http://www.example.org/example.php?id=0.
wird blabla http://www.example.org/example.php?id=0.

Ein Link steht entweder mitten im Text (nachfolegendes Zeichen ". " oder nur " ") oder kann von Klammern umgeben sein.

Verwendeter Code:
$lsSuche = "/http:\/\/[^ \(\)\n]+[$_0-9a-zA-Z-\/]{1,1}/ims";
$lsReplace = "<a href=\"\\0\" target=\"_blank\">\\0</a>";
$tsText = preg_replace($lsSuche, $lsReplace, $tsText);

Problem:

Wenn ein Link ein Gleichheitszeichen beinhaltet und sich davor Großbuchstaben befinden, erkennt PHP den Ausdruck(sehe oben) nur bis zum Gleichheitszeichen an.
Beispiel:
aus http://www.bus-und-bahn.de/ocx2.exe?GP=80 wir nur
http://www.bus-und-bahn.de/ocx2.exe?GP=80

Habe meinen Ausdruck auch schon mit dem RegEx-Coach getestet, der macht da keine Probleme.

Hinweise:
PHP-Version ist 4.3.10


Über Lösungshinweise, auch Ansätze, oder auch andere RegEx-Ausdrücke zu dem Problem wäre ich dankbar.

Viele Grüße
Marco Krings
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 06.06.2005, 12:31  
Gast
 
Beiträge: n/a
Standard

{1,1} nochmal über denken eventuell den ganzen ausdruck
"#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^\t <\n\r]*)?)#i"
  Mit Zitat antworten
Alt 06.06.2005, 12:54  
Gast
 
Beiträge: n/a
Standard

Zitat:
\n\r
Wie bisten darauf gekommen ?
  Mit Zitat antworten
Alt 06.06.2005, 13:32  
Gast
 
Beiträge: n/a
Standard

muss ich die modifier s|m benutzen ?
  Mit Zitat antworten
Alt 06.06.2005, 16:22  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von J33d3X
"#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^\t <\n\r]*)?)#i"
Danke. Das Problem ist jetzt nur, wenn hinter dem Link direkt ein Punkt oder eine Klammer folgt, wird diese mit in das Ergebnis einbezogen.
Die Klammer lässt sich mit "\)" in der letzten Mengenklammer herausnehmen.

Viele Grüße
Marco
  Mit Zitat antworten
Alt 06.06.2005, 16:25  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von J33d3X
muss ich die modifier s|m benutzen ?
Zumindest "m" müsste, in meine Fall, benutzt werden, da der uu durchsuchende Text mehrzeilig sein kann.

Viele Grüße
Marco
  Mit Zitat antworten
Alt 06.06.2005, 23:42  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von schluggy
da der uu durchsuchende Text mehrzeilig sein kann.
Dann braucht man in der Regel "s", damit der "." auch auf Zeilenumbrüche matcht, "m" hätte bei dieser Regex keine Funktion.
__________________
mod = master of disaster
Waq ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Text mit Links (HTML)-formatiert ausgeben asyoulikeit Datenbanken 6 02.06.2008 08:49
CSS - Design (clear - Problem) HTML, Usability und Barrierefreiheit 7 21.12.2005 14:55
Text aus der DB verteilen PHP Tipps 2007 17 16.11.2005 12:04
[Erledigt] Link PHP Tipps 2005-2 10 20.07.2005 21:28
Tabelle ganz links lalala HTML, Usability und Barrierefreiheit 1 06.07.2005 14:29
[Erledigt] durch Klick auf Text anderen Text einblenden HTML, Usability und Barrierefreiheit 3 03.07.2005 14:41
Links im Text in extra Spalte? TheIfrit Datenbanken 4 01.06.2005 19:27
[Erledigt] DIV´s wollen nicht wie ich das will :-) HTML, Usability und Barrierefreiheit 22 28.03.2005 18:36
frames probleme HTML, Usability und Barrierefreiheit 6 18.01.2005 02:33
Text richtig ausgeben PHP Tipps 2004-2 3 21.11.2004 19:55
Funktion schreibt Text links oben hin... PHP Tipps 2004 5 29.09.2004 14:09
Zeilenumbrüche aus einem formatierten Text entfernen woods PHP Tipps 2004 9 23.09.2004 12:50
[Erledigt] includ. Text ersetzen ohne vars PHP Tipps 2004 3 13.09.2004 23:16
txt-Datei erstellen d-81 PHP Tipps 2004 12 11.08.2004 20:31
CMS - Links in text dynamisch einfügen PHP-Fortgeschrittene 1 23.07.2004 17:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
reguläre ausdrücke link, regulärer ausdruck link, http://www.php.de/php-fortgeschrittene/24264-regulaere-ausdruecke-ersetzt-links-im-text-nicht-richtig.html, reguläre ausdrücke links, php reguläre ausdrücke, php reguläre ausdrücke link, php regulärer ausdruck links, php regulärer ausdruck link, regulärer ausdruck php link, reguläre ausdrücke link entfernen beispiel, php regulärer ausdruck url in text, php link, img im text suchen regulär ausdruck, php link from text, php links text, php regulärer ausdruck finden und ausgeben, php reguläre ausdrücke gleichzeichen, reguläre ausdrücke link entfernen php, php preg_replace gleichheitszeichen, reguläre ausdrücke php link, php reguläre ausdrücke links

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.