使用preg_replace从字符串中删除域扩展名


Removing domain extension from string using preg_replace?

我想使用preg_replace()从字符串中删除域扩展.com,因此,例如,如果主题参数是facebook.com,则将从字符串中删除.com

我认为这将工作,preg_replace(".com", "", $host);

不幸的是,它返回了错误:Warning: preg_replace() [function.preg-replace]: No ending delimiter '.' found in .

然后我尝试用反斜杠转义句点(认为这是问题所在),结果返回:

Warning: preg_replace() [function.preg-replace]: Delimiter must not be alphanumeric or backslash

任何评论,答案或信息将非常感谢!!:)。

你必须转义点但是正则表达式必须以/pattern/的形式传递也就是斜杠之间

preg_replace("/'.com/", "", $host); 

旁注,有比使用全能的正则表达式更好的推荐方法。例如:

$url = explode(".","http://static.facebook.com");   
echo $url[1]; // facebook

您需要包括像这样的正则分隔符:

$domain = preg_replace("/'.com$/i", "", $host);

还使用$将匹配锚定到字符串的末尾,并使用"i"表示"FACEBOOK.COM"的不区分大小写匹配