2015-01-12 175 views
0

下面我已经有了一点我所有的编码,这是我需要的东西。 $ linkurl只是一个普通的网址。 我想要这个代码,所以可能http://https://将不会在我把它放入我的数据库之前的链接。当人们自己添加http://时,这是一种错误预防,因此您无法在数据库中使用http://http://删除一个PHP字符串中的一组特定字符

if (strpos($linkurl,'http://') !== false){ 
    $linkurl-http://=$linkurl 
} 

问题是,我不知道在if声明中输入什么。

回答

0

您可以用正则表达式替换http://https://这个代码。

$linkurl = 'http://example.com'; //Works for https too 
$replaced = preg_replace('@(http://|https://)@i', '', $linkurl); 
echo $replaced; 
+0

可以简化正则表达式到'/ ^(https?:\/\ /)'(这是PHP的等价物^^https://') – Crembo

+0

是的,那是一样的。在我的例子中,我使用'@'作为分隔符,因为在这种情况下,我不需要转义'/'字符,在我的情况下,我检查了'http://'和'https:/ /'也是。你提出的只适用于'https://',并且在and处有一个'/'分隔符。 – vaso123

0

lolka_bolka答案是正确的,但是,你也可以使用非正则表达式版本:

$linkurl = 'http://example.com'; 
$toreplace = ['http://', 'https://']; // can add more things like ftp:// or whatever you like 
$replaced = str_replace($toreplace, '', $linkurl); 

echo $replaced; 

如果您使用的是旧版本的PHP,你需要使用$toreplace = array('http://', 'https://');代替

+0

确实,这看起来更好,问题是“['http://','https://'];”会因[,]和,而给出错误。 – Rooneymelooney

+0

这是一个数组,并且此语法仅适用于PHP 5.4 – vaso123

+0

我已经更新了答案。但是,是的,这是5.4语法,我强烈建议更新您的PHP版本。 – Crembo

相关问题