2011-03-15 68 views
2

我需要帮助更换如google.com的链接进入http://www.google.comPHP的preg_replace帮助

$url = preg_replace("/([^\w\/])(www\.[a-z0-9\-]+\.[a-z0-9\-]+)/i", "$1http://$2",$url); 
$output = htmlspecialchars(urldecode($url)); 

我使用的iframe,如:

<iframe src='$url'></iframe> 

但是,如果src =“google.com “而不是”http://google.com“它不起作用。那么,我如何才能将google.com转换为http://www.google.com

回答

0
$url = "www.google.com"; 
if(!preg_match("/^https/i",$url)) 
    $url = "http://$url"; 
0

有更好的方法来做到这一点,但是这将工作:

if(!preg_match("#^http:\/\/#", $url)) { 
     $url = "http://".$url; 
} 
0
$url = 'http://' . $url; 

的simpliest可能的方式:○

0

如何检查是否http://是对的开始它,如果不标记它?像这样:

$url = 'google.com'; 
if (!preg_match('#^http://#', $url)) { 
    $url = 'http://'.$url; 
} 
0

只是为了好玩,这里是一个通过采取消极先行的优势只使用了preg_replace。然而,我同意这里的其他解决方案,它可能是最好的preg_match然后字符串连接。

$url = preg_replace('#^(?!https?://)#', 'http://', $url); 
0

如果您只是想让您的RegEx匹配google.com e.a.,您所要做的就是制作www。可选的。请注意,这可能会引入其他问题,例如end.begin被识别为URL。

/([^\w\/])((www\.)?[a-z0-9\-]+\.[a-z0-9\-]+)/i 
1

这是一个非正则表达式的黑客方式来做到这一点。

$url = 'google.com'; 
function addHTTP($url) { 
return 'http://'.str_replace('http://','',$url); 
}