Re: Extract links from strings
| From: | Philip Thompson | Date: | Wed, 23 Sep 2009 15:02:27 +0000 |
| Subject: | Re: Extract links from strings | ||
| References: | 1 2 3 4 5 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-298287@lists.php.net to get a copy of this message | ||
On Sep 21, 2009, at 6:20 PM, Jim Lucas wrote:
Jim Lucas wrote:What if the sub domain was not 'www'? http://no-www.org/ Cheers, ~PhilipJônatas Zechim wrote:Actually, try this. It seems to work a little better. <plaintext><?php $urls[] = 'Lorem ipsum dolor http://site.com sit amet'; $urls[] = 'Lorem ipsum dolor https://www.site.com/ or http://www.site2.com/'; $urls[] = 'Lorem ipsum dolor www.site1.net sit amet'; $urls[] = 'Lorem ipsum dolor www site2.net sit amet'; foreach ( $urls AS $url ) { if ( preg_match_all( '%(https?://[^\s]+|www\.[^\s]+)%', $url, $m, (PREG_SET_ORDER ^ PREG_OFFSET_CAPTURE) ) ) { print_r($m); } } ?>Hi there, i've the following strings: $string1 = 'Lorem ipsum dolor http://site.com sit amet'; $string2 = 'Lorem ipsum dolor http://www.site.com/ sit amet'; $string3 = 'Lorem ipsum dolor http://www.site.net sit amet'; How can I extract the URL from these strings? They can be [http:// + url] or [www. + url]. ZechimSomething like this should work for you. <plaintext><?php $urls[] = 'Lorem ipsum dolor http://site.com sit amet'; $urls[] = 'Lorem ipsum dolor https://www.site.com/ sit amet'; $urls[] = 'Lorem ipsum dolor www.site1.net sit amet'; $urls[] = 'Lorem ipsum dolor www site2.net sit amet'; foreach ( $urls AS $url ) { if ( preg_match('%((https?://|www\.)[^\s]+)%', $url, $m) ) { print_r($m); } } ?>