Re: Extract links from strings

From: Date: Mon, 21 Sep 2009 17:45:09 +0000
Subject: Re: Extract links from strings
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-298238@lists.php.net to get a copy of this message
At 12:52 PM -0300 9/21/09, Jônatas Zechim wrote:
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]. Zechim
Not tested: <?php $textString = 'orem ipsum dolor sit amet, consectetuer adipiscing elit. Proin et urna. Duis quam. Suspendisse potenti. Etiam sem tortor, ultricies nec, http://example.com imperdiet nec, tempus ac, purus. Suspendisse id lectus. Nam vitae quam. Aliquam ligula nisl, vestibulum vulputate, tempor nec, https://www.example.com tincidunt sit amet, libero. Suspendisse a justo. Cum sociis natoque penatibus et.'; $url_regexp = '<(?:(?:https?)://(?:(?:(?:(?:(?:(?:[a-zA-Z0-9][-a-zA-Z0-9]*)?[a-zA-Z0-9])[.])*(?:[a-zA-Z][-a-zA-Z0-9]*[a-zA-Z0-9]|[a-zA-Z])[.]?)|(?:[0-9]+[.][0-9]+[.][0-9]+[.][0-9]+)))(?::(?:(?:[0-9]*)))?(?:/(?:(?:(?:(?:(?:(?:[a-zA-Z0-9\\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*)(?:/(?:(?:(?:[a-zA-Z0-9\\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)(?:;(?:(?:[a-zA-Z0-9\\-_.!~*\'():@&=+$,]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*))*))*))(?:[?](?:(?:(?:[;/?:@&=+$,a-zA-Z0-9\\-_.!~*\'()]+|(?:%[a-fA-F0-9][a-fA-F0-9]))*)))?))?)>'; $output = preg_replace($url_regexp, '<a href="$0">$0</a>', $textString); print $output; ?> Cheers, tedd -- ------- http://sperling.com http://ancientstones.com http://earthstones.com

« previous php.general (#298238) next »