PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

29-07-2008, 22:11
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
regex suchen nach domains und ersetzen durch link mit preg_replace
Ich versuche jetzt schon ein Stunde die Syntax einer regexabfrage. Leider komme ich nicht auf den sprung. Daher diese Frage:
ich möchte also Domains erkennen und als Link ausgeben.
Dazu verwende ich preg_replace. die folgede Syntax gibt jedoch folgendne fehler aus der eigentlich nicht sein sollte oder?
Warning: preg_replace() [function.preg-replace]: Unknown modifier '/' in C:\xampp\htdocs\sites\becos\inhalte\13_messe.php on line 50
PHP-Code:
$suchmuster = '/(http|https)(://)(www\.)([a-z0-9\.-]{3,})\.([a-z]{2,4})/';
$ersetzung = "<a href='$1'>weitere Informationen hierzu</a>";
echo nl2br(preg_replace($suchmuster, $ersetzung, $row['text']));
|

29-07-2008, 22:18
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
ok hab das escapen vergessen
aber leider wird nix ersetzt.
PHP-Code:
$suchmuster = '/(http|https)+(:\\\/\\\/)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$/';
|

30-07-2008, 00:36
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
so jetzt bin ich ein schritt weitergekommen
FINDET ER MEINE DOMAIN MIT ZUSATZ
nun will ich aber, dass, wenn ein leerzeichen folgt, die umformung endet. denn wenn eine andere zeichenkette folgt wird die in den link hineingenommen. Vielleicht weiß ja jemand eine Lösung dazu
PHP-Code:
$suchmuster = '/((http|https)+(:\/\/)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})?(.*))/i';
|

30-07-2008, 00:52
|
3DMax
PHP Senior
|
|
Registriert seit: Jan 2004
Beiträge: 1.916
|
|
Re: so jetzt bin ich ein schritt weitergekommen
Zitat:
Original geschrieben von sanktusm
nun will ich aber, dass, wenn ein leerzeichen folgt, die umformung endet.
|
wenn du noch ein bisschen wartest, wird sanktusm bestimmt wieder antworten
in der zwischenzeit könntest du aber auch erklären, was ".*" am ende bewirkt.
aber auch sonst sieht mir der regex aus, wie ohne plan zusammengeschustert (+, ?)
|

30-07-2008, 00:55
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Bitte:
PHP-Code:
'~((http|https)+(://)+(www.)+([a-zA-Z0-9-]+.)+
([a-zA-Z]{2,4})?(.*[^\S]))~'
|

30-07-2008, 00:58
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
sanktusm bin ich selbst
Ich habe tatsächlich keinen so genauen plan. Die Domain ohne Pfade kann damit ohne Probleme erkannt werden . NUr wenn ein Pfad oder ein Pfad zu einer Datei folgt gibt es schwierigkeiten.
Wenn Du schon so ein waches Auge für Lösungen hast kannst Du mir sicher weiterhelfen, oder?
|

30-07-2008, 01:00
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
nein leider ist das nicht die lösung
es werden nach wie vor folgende zeichenketten die nichts mit der Domain zu tun haben eingebunden. Es muss noch ein lehrzeichen am schluss hin.
|

30-07-2008, 01:03
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
Äh... ja, ich dachte, du das es beim Leerzeichen getrennt wird?
URL - Space - Text ?!
Zumindest hast du es oben so geschildet^^..
Wie soll man URL-TEXT voneinander trennen, wenn es keinen sinnvollen Delimeter gibt?
|

30-07-2008, 01:08
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
unformatiert sieht der text so aus:
HIER EIN TEXT DANN DAS HIER http://www.comdesi.de/file/index.php hier noch ein anderer text
|

30-07-2008, 01:18
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
vielen dank werd es gleich mal ausprobieren
leider ist das Problem das selbe es wird nachfolgender text eingebunden
vielleicht kann der eigentümer dieser seite php-resource.de weiterhelfen. bei dem klappt es nämlich
|

30-07-2008, 01:48
|
Blackgreetz
PHP Junior
|
|
Registriert seit: Oct 2005
Beiträge: 901
|
|
|

30-07-2008, 11:17
|
sanktusm
Registrierter Benutzer
|
|
Registriert seit: Aug 2005
Beiträge: 646
|
|
So geht es nun
PHP-Code:
$suchmuster = '#((http|https)+(\://)+(www\.)+([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})?(?:[\S])*)#i';
war ne harte arbeit. vielen dank an alle die mitgewirkt haben
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|