Skip to content Skip to sidebar Skip to footer

Php: Remove `http://` From Link Title

I have a string that looks like: $string = 'http://google.com'; How can I remove the http:// part from the link text, but leave it in th

Solution 1:

Without using a full blown parser, this may do the trick for most situations...

$str = '<a href="http://google.com">http://google.com</a>';

$regex = '/(?<!href=["\'])http:\/\//';

$str = preg_replace($regex, '', $str);

var_dump($str); // string(42) "<a href="http://google.com">google.com</a>"

It uses a negative lookbehind to make sure there is no href=" or href=' preceding it.

See it on IDEone.

It also takes into account people who delimit their attribute values with '.

Solution 2:

$string = '<a href="http://google.com">http://google.com</a>'; 
$var = str_replace('>http://','>',$string); 

Just tried this in IDEone.com and it has the desired effect.

Solution 3:

In this simple case, the preg_replace function will probably work. For more stability, try using DOMDocument:

$string = '<a href="http://google.com">http://google.com</a>';
$dom = new DOMDocument;
$dom->loadXML($string);

$link = $dom->firstChild;
$link->nodeValue = str_replace('http://', '', $link->nodeValue);
$string = $dom->saveXML($link);

Solution 4:

$str = 'http://www.google.com';
$str = preg_replace('#^https?://#', '', $str);
echo$str; // www.google.com

that will work for both http:// and https://

running live code

Solution 5:

Any simple regular expression or string replacement code is probably going to fail in the general case. The only "correct" way to do it is to actually parse the chunk as an SGML/XML snippet and remove the http:// from the value.

For any other (reasonably short) string manipulation code, finding a counterexample that breaks it will be pretty easy.

Post a Comment for "Php: Remove `http://` From Link Title"