Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Links ersetzen, wie in der DP (https://www.delphipraxis.net/67714-%5Bphp%5D-links-ersetzen-wie-der-dp.html)

Delphi Star 18. Apr 2006 23:04


[PHP] Links ersetzen, wie in der DP
 
Wie kann man die Links, wie die in der DP, ersetzen :?:
[ url]http://beispiel.de[/url]
[ url=http://beispiel.de]Beispiel[/url]
Wie kann ich prüfen, ob und vorhanden sind, oder nur eins von beiden gesetzt wurde usw.

Matze 18. Apr 2006 23:08

Re: [PHP] Links ersetzen, wie in der DP
 
Schaue doch in die phpBB-Soßen. Ein Auszug:

Code:
// matches a [url]rel://viewtopic.php[/url] code..
$patterns[] = "#\[url\](rel://[\./]*([^ \"\n\r\t<]*?))\[/url\]#is";
$replacements[] = $bbcode_tpl['url5'];

// matches a [url]xxxx://www.phpbb.com[/url] code..
$patterns[] = "#\[url\]([\w]+?://([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url1'];

// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url\]((www|ftp)\.([\w\#$%&~/.\-;:=,?@\]+]|\[(?!url=))*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url2'];

// matches a [url=rel://viewtopic.php]view topic[/url] code..
$patterns[] = "#\[url\=(rel://[\./]*([\w\#$%&~/.\-;:=,?@\[\]+]*?))\](.*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url6'];

// [url=xxxx://www.phpbb.com]phpBB[/url] code..
$patterns[] = "#\[url=([\w]+?://[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url3'];

// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix).
$patterns[] = "#\[url=((www|ftp)\.[\w\#$%&~/.\-;:=,?@\[\]+]*?)\]([^?\n\r\t].*?)\[/url\]#is";
$replacements[] = $bbcode_tpl['url4'];

alcaeus 18. Apr 2006 23:18

Re: [PHP] Links ersetzen, wie in der DP
 
Ich weisse mal darauf hin, dass der Code unter der GPL steht; d.h. wenn du den Code so verwendest, musst du deine App/deine Website ebenfalls unter die GPL stellen ;)

Greetz
alcaeus

S2B 18. Apr 2006 23:44

Re: [PHP] Links ersetzen, wie in der DP
 
Und noch einen einfachen Code für die nicht-GPLler:
Code:
$text = preg_replace('#\[b\](.*?)\[/b\]#si', '[b]\\1[/b]', $text);
Das solltest du nach ein bisschen Einarbeitung in die RegEx's (und ein paar Blicken in die phpBB-Sourcen *g*) auf [url] anpassen können, außerdem muss es ja auch nicht so komplex wie der Code im phpBB sein. :wink:

alcaeus 19. Apr 2006 01:43

Re: [PHP] Links ersetzen, wie in der DP
 
Zitat:

Zitat von S2B
außerdem muss es ja auch nicht so komplex wie der Code im phpBB sein. :wink:

Doch, sollte er. Sonst kanns naemlich gewaltig krachen, sobald man anfaengt, Tags zu verschachteln und ' zu verwenden. Ich sag nur: XSS ;)

Greetz
alcaeus

S2B 19. Apr 2006 02:59

Re: [PHP] Links ersetzen, wie in der DP
 
Zitat:

Zitat von alcaeus
Doch, sollte er. Sonst kanns naemlich gewaltig krachen, sobald man anfaengt, Tags zu verschachteln und ' zu verwenden. Ich sag nur: XSS ;)

Damit meinte ich eher die vielen verschiedenen Möglichkeiten, wie man den [url]-Tag verwenden kann, also mit beliebigem Protokoll etc. :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz