我需要帮助将google.com等链接替换为http://www.google.com
$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 :(得分:1)
这是一种非正则表达式的黑客攻击方式。
$url = 'google.com';
function addHTTP($url) {
return 'http://'.str_replace('http://','',$url);
}
答案 1 :(得分:0)
$url = "www.google.com";
if(!preg_match("/^https/i",$url))
$url = "http://$url";
答案 2 :(得分:0)
有更好的方法可以做到这一点,但这将有效:
if(!preg_match("#^http:\/\/#", $url)) {
$url = "http://".$url;
}
答案 3 :(得分:0)
$url = 'http://' . $url;
最简单的方法:op>
答案 4 :(得分:0)
检查http://
是否在它的开头,如果没有标记,怎么样?像这样:
$url = 'google.com';
if (!preg_match('#^http://#', $url)) {
$url = 'http://'.$url;
}
答案 5 :(得分:0)
只是为了好玩,这里是一个利用preg_replace利用负面前瞻的方法。但是,我同意这里的其他解决方案,最好只是preg_match然后是字符串连接。
$url = preg_replace('#^(?!https?://)#', 'http://', $url);
答案 6 :(得分:0)
如果您只是想让您的RegEx与google.com e.a.匹配,那么您只需要制作www。可选的。请注意,这可能会引入其他问题,例如end.begin
被识别为网址。
/([^\w\/])((www\.)?[a-z0-9\-]+\.[a-z0-9\-]+)/i