[solved] Regex URL Erkennen

Fragen rund um PHP,HTML,CSS und MySQL

Re: Regex URL Erkennen

Beitragvon Markus.Lorch » 28. Mär 2011, 18:47

mit http:// funktionierts auch prima. Nur die www. Variante will bei mir generell nicht. Text ist ganz normal:

Code: Alles auswählen
<p>Internet: www.domain.com</p>
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle
Benutzeravatar
Markus.Lorch
 
Beiträge: 635
Registriert: 21. Okt 2007, 16:22
Wohnort: Walheim

Re: Regex URL Erkennen

Beitragvon Thomas.Blum » 28. Mär 2011, 19:20

Ab geändert auf eine Regex

Code: Alles auswählen
// Fehler noch entdeckt
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: Regex URL Erkennen

Beitragvon jeandeluxe » 28. Mär 2011, 19:30

Thomas.Blum hat geschrieben:Also das was nach Jans provokanten "mach.. ;-)"


Provokant? ne, das wär anders. ;) war nur ein (gelungener) ABM Trick. ;-)

lg,
Jan
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Regex URL Erkennen

Beitragvon Thomas.Blum » 28. Mär 2011, 19:48

Markus.Lorch hat geschrieben:mit http:// funktionierts auch prima. Nur die www. Variante will bei mir generell nicht. Text ist ganz normal:

Code: Alles auswählen
<p>Internet: www.domain.com</p>



Dein Text hatte einen kleinen Haken :)
Der Doppelpunkt nach dem Wort Internet hat das Finden der Url unterdrückt.

Teste mal das:

Code: Alles auswählen
<?php

$content = '<p>Internet: www.test.com</p><p>Lorem www.ipsum.de</p> <p>dolor sit amet, <a href="http://redaxo.org">REDAXO</a> sadipscing elitr, http://blumbeet.com diam nonumy eirmod http://www.tempor.de.</p>
';

$regex = array();
$regex[] = "{ \\b(?<![\">])((https?|ftp):[\\w/\\#~:.?+=&%@!\\-]+?)(?=[.:?\\-]*(?:[^\\w/\\#~:.?+=&%@!\\-]|$)) }x";
$regex[] = "{ (?<![\">])(\\s)+\\b((www)[\\w/\\#~:.?+=&%@!\\-]+?)(?=[.:?\\-]*(?:[^\\w/\\#~:.?+=&%@!\\-]|$)) }x";

$replace = array();
$replace[] = "<a href=\"$1\">$1</a>";
$replace[] = "$1<a href=\"http://$2\">$2</a>";

echo preg_replace($regex, $replace, $content);

?>


vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: Regex URL Erkennen

Beitragvon Markus.Lorch » 28. Mär 2011, 20:15

Year. Thx.

Ist mir langsam ja schon fast peinlich ;) Aber leider blick ich da selbst nicht durch.

Wenn eine URL alleine steht geht es noch nicht. Aber sonst passt alles. Wirklich cool.
Code: Alles auswählen
<p>www.domain.com</p>
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle
Benutzeravatar
Markus.Lorch
 
Beiträge: 635
Registriert: 21. Okt 2007, 16:22
Wohnort: Walheim

Re: Regex URL Erkennen

Beitragvon Thomas.Blum » 28. Mär 2011, 20:35

Markus.Lorch hat geschrieben:Wenn eine URL alleine steht geht es noch nicht. Aber sonst passt alles. Wirklich cool.
Code: Alles auswählen
<p>www.domain.com</p>


Nimmt nun auch Urls die direkt hinter einer ">" stehen.
Code: Alles auswählen
<?php

$content = '<p>www.domain.com</p><p>Internet: www.test.com</p><p>Lorem www.ipsum.de</p> <p>dolor sit amet, <a href="http://redaxo.org">REDAXO</a> sadipscing elitr, http://blumbeet.com diam nonumy eirmod http://www.tempor.de.</p>
';

$regex = array();
$regex[] = "{ \\b(?<![\">])((https?|ftp):[\\w/\\#~:.?+=&%@!\\-]+?)(?=[.:?\\-]*(?:[^\\w/\\#~:.?+=&%@!\\-]|$)) }x";
$regex[] = "{ (?<![\">])(>|\\s)+\\b((www)[\\w/\\#~:.?+=&%@!\\-]+?)(?=[.:?\\-]*(?:[^\\w/\\#~:.?+=&%@!\\-]|$)) }x";

$replace = array();
$replace[] = "<a href=\"$1\">$1</a>";
$replace[] = "$1<a href=\"http://$2\">$2</a>";

echo preg_replace($regex, $replace, $content);

?>
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: Regex URL Erkennen

Beitragvon Markus.Lorch » 28. Mär 2011, 21:25

Wow. Cool. Vielen Dank :) It works everything.
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle
Benutzeravatar
Markus.Lorch
 
Beiträge: 635
Registriert: 21. Okt 2007, 16:22
Wohnort: Walheim

Re: Regex URL Erkennen

Beitragvon jeandeluxe » 28. Mär 2011, 21:29

Markus.Lorch hat geschrieben:Wow. Cool. Vielen Dank :) It works everything.

Ab ins wiki damit.. ;-)

lg,
Jan
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Regex URL Erkennen

Beitragvon Thomas.Blum » 28. Mär 2011, 21:32

jeandeluxe hat geschrieben:Ab ins wiki damit.. ;-)


da zitiere ich den großen ABMler

"mach ;)" :)

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Re: Regex URL Erkennen

Beitragvon jeandeluxe » 28. Mär 2011, 21:43

Thomas.Blum hat geschrieben:da zitiere ich den großen ABMler
"mach ;)" :)


Ohne Textile.. nope, nich den Nerv für. ;)

lg,
Jan
RexSEO Support Checklist | Redaxo API Docu | rexdev.de | "You start with some money.."
mark your solved threads [SOLVED]™ promotion tour..
Benutzeravatar
jeandeluxe
 
Beiträge: 1941
Registriert: 29. Sep 2005, 09:50
Wohnort: Hamburg

Re: Regex URL Erkennen

Beitragvon Markus.Lorch » 29. Mär 2011, 07:40

Ich hab gefragt, ich machs ;)

http://wiki.redaxo.de/index.php?n=R4.LinksErkennen

Ich frag mich gerade ob das nicht auch mit GENERATE_FILTER gehen würde. Dann wäre es ja schon im Cache ersetzt?
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle
Benutzeravatar
Markus.Lorch
 
Beiträge: 635
Registriert: 21. Okt 2007, 16:22
Wohnort: Walheim

Re: [solved] Regex URL Erkennen

Beitragvon Markus.Lorch » 8. Apr 2011, 10:05

Okay ;) Ein Wunsch hätt ich doch noch.

Was muss ich ändern um es auch für email@domain.tld funktionierend zu bringen? Egal was ich versuch - es crasht immer gleich :(
Grüße,
Markus Lorch

Tschüssle sagt Herr Nüssle
Benutzeravatar
Markus.Lorch
 
Beiträge: 635
Registriert: 21. Okt 2007, 16:22
Wohnort: Walheim

Re: [solved] Regex URL Erkennen

Beitragvon Thomas.Blum » 8. Apr 2011, 10:20

Um eine E-Mail zu erkennen kannst du die Regex aus der Xform nehmen (Validierung).

Du musst nur sicherstellen, dass nur außerhalb von <a> ersetzt wird.

vg Thomas
blumbeet - web.studio - Dresden - 0351 217 6225
webbude - Blog über CSS.XHTML.REX
Ein Wunschzettel
Benutzeravatar
Thomas.Blum
Entwickler
 
Beiträge: 4670
Registriert: 24. Aug 2004, 21:11
Wohnort: Dresden

Vorherige

Zurück zu PHP/HTML/CSS/MySQL

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron