Jump to content

URL's!


jxrd

Recommended Posts

Hello,

 

I'm trying to match urls to wrap them with bbcode tags. I have this working:

 

<?php
$s = 'http://www.site.co.uk/page.php?action=something';
echo preg_replace('/(http\:\/\/|www\.)+([a-z0-9-_]+)\.(.*?)$/', '[url]http://www.$2.$3[/url]', $s);
?>

However, I wish to only match urls which don't already have url tags around them already.

I've tried stuff like this:

<?php
$s = 'http://www.site.co.uk/page.php?action=something';
echo preg_replace('/(^\[url\])(http\:\/\/|www\.)+([a-z0-9-_]+)\.(.*?)$(^\[\/url\])/', '[url]http://www.$3.$4[/url]', $s);
?>

But I can't seem to get it to work.

 

It's probably something really simple. Any help would be awesome.

Link to comment
https://forums.phpfreaks.com/topic/160283-urls/
Share on other sites

Nice one - I never even knew they existed.

 

End product:

preg_replace('/^(?!\[url.*?\](\s)?)(http\:\/\/|www\.)+([a-z0-9-_]+)\.(.*?)$/', '[url]http://www.$4.$5[/url]', $code);

 

 

Oh hey, I just noticed a bug for you - The exact same code i put up there, but in php tags will look like this: (attempts to convert my url into bbcode despite the fact that it's in code tags)

 

preg_replace('/^(?!\[url.*?\](\s)?)(http\:\/\/|www\.)+([a-z0-9-_]+)\.(.*?)$/', '[url=http://www.$4.$5]http://www.$4.$5[/url]', $code);

Just thought I'd let you know.

Link to comment
https://forums.phpfreaks.com/topic/160283-urls/#findComment-846141
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.