删除php字符串中的特定字符集

删除php字符串中的特定字符集,php,string,url,strpos,Php,String,Url,Strpos,下面是我所有代码的一小部分,这是我需要的东西$linkurl只是一个常规url。 我需要此代码,以便在我将其放入数据库之前,可能的http://或https://不会出现在链接中。当人们自己添加http://时,这是一种故障预防,因此您无法使用http://http://在数据库中 if (strpos($linkurl,'http://') !== false){ $linkurl-http://=$linkurl } 问题是,我不知道在if语句中键入什么。您可以使用正则表达式将ht

下面是我所有代码的一小部分,这是我需要的东西$linkurl只是一个常规url。 我需要此代码,以便在我将其放入数据库之前,可能的
http://
https://
不会出现在链接中。当人们自己添加
http://
时,这是一种故障预防,因此您无法使用
http://http://
在数据库中

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

问题是,我不知道在
if
语句中键入什么。

您可以使用正则表达式将
http://
https://
替换为这段代码的sinppet

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

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://')可以将正则表达式简化为
/^(https?:\/\/)
(这是PHP中与
^https?:/
)是的,这是相同的。在我的示例中,我使用了
@
作为分隔符,因为在这种情况下,我不需要转义
/
字符,在我的示例中,我也检查了
http://
https://
。您所展示的内容仅适用于
https://
,并且and处有一个混乱的
/
分隔符。事实上,这看起来更好,问题是“['http://','https://';”将给出一个错误,因为[,]和,.我已经更新了答案。但是,这是5.4语法,我强烈建议您更新PHP版本。