Bug #16642 Updated: replace url with a link
| From: | andreas dot schempp at gmx dot ch | Date: | Tue, 16 Apr 2002 17:50:58 +0000 |
| Subject: | Bug #16642 Updated: replace url with a link | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-5126@lists.php.net to get a copy of this message | ||
ID: 16642
Updated by: andreas.schempp@gmx.ch
Reported By: andreas.schempp@gmx.ch
Status: Closed
Bug Type: Feature/Change Request
Operating System: Linux 2.4.17 (self compiled)
PHP Version: 4.1.2
New Comment:
Its not as simple as you think, specialy for non-preg-users.
I could not find any real documentation wich arguments could be used
for preg_replace, only the ones at ereg_replace, posted from a user.
I needed half a week to construct the things you see here...
Previous Comments:
------------------------------------------------------------------------
[2002-04-16 13:41:25] robert@webmotion.com
The same could be said of addSlashes, htmlspecialchars, htmlentities
and
a multitude of other functions. I find your argument lacking.
Cheers,
Rob.
------------------------------------------------------------------------
[2002-04-16 13:31:23] sander@php.net
No, we can't include a function for stuff like this. This can be easily
done in PHP, so there's no need for a native function.
------------------------------------------------------------------------
[2002-04-16 13:27:07] andreas.schempp@gmx.ch
I could not find any function to replace an url within a string with a
link
if someone writes http://www.php.net, I want I to be replaced with
<a
href="http://www.php.net>
I saw this on your page too, its easy to recreate your function myself
with
$string =
preg_replace("((http://)([a-zA-Z1-9\-_\.]+\.[a-zA-Z1-9\-_]+\.[a-z]{2,3}(/[a-z\-/\._\?=&]+)?))",
"<a href=\"\\1\\2\" target=\"_blank\">\\0</a>", $string);
but wouldnt it be nice to replace an url like www.php.net too?
For now, I use
$string =
preg_replace("((http://|ftp://)?([a-zA-Z1-9\-_\.]+\.[a-zA-Z1-9\-_]+\.[a-z]{2,3}(/[a-z\-/\._\?=&]+)?))",
"<a href=\"\\1\\2\" target=\"_blank\">\\0</a>", $string);
to convert every url to an link.
but if you have an url like www.php.net, it will create a link like <a
href="www.php.net">, wich will not work.
To prevent this, I use
$string =
preg_replace("((href=\")([a-zA-Z1-9\-_\.]+\.[a-zA-Z1-9\-_]+\.[a-z]{2,3}(/[a-z\-/\._\?=&]+)?))",
"href=\"http://\\2", $string);
wich will replace anything like href="something.php.net with
href="http://something.php.net
I think it will be nice for other people to include (something like)
this function in php, because many people would use it
thanks
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=16642&edit=1