2011-08-18 30 views
1

我想删除域扩展.com使用preg_replace()一个字符串,所以例如,如果对象的参数是facebook.com.com将从串擦除。使用preg_replace从字符串中删除域扩展?

我想这会工作,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

任何意见,答案或信息,将不胜感激! :)。

+0

你并不需要一个正则表达式这一点,尝试'str_replace函数(”。com”, “”,$主机)' –

回答

0

你有逃跑的点,但也正则表达式具有在/pattern/的形式,是斜杠

之间
preg_replace("/\.com/", "", $host); 

旁注传递,有更好的推荐的方法可以做到这比使用全能常用表达。例如:

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

谢谢:)。当计时器结束时我会接受。我想有可能是更好的方法,如果你不太忙,我爱你引用一个更好的功能;)或确实添加到我当前的代码:'破灭(,array_slice(爆炸(‘”。’。 ”,parse_url( “http://static.facebook.com”,PHP_URL_HOST)),-2));',它返回'facebook.com'。我试图改变最后一个参数来简单地传递“facebook”,但没有用。 – Avicinnian

+0

这似乎很奇怪,但也死简单:反向输入,然后检查,看看是否“商务部”。在位置0处使用strpos($ input,'moc。')'。当然,只有在'.com'之后什么也没有。其他方法是查看'strpos()'是否告诉你'.com'从字符位置'strlen($ input)-4'开始。无论如何,你避免了正则表达式。 – Guttsy

+0

@Pixelatron我添加了一个更清洁的方式做到这一点在我的答案,让我知道这是否会做 – amosrivera

0

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

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

而且使用$来锚定比赛结束的字符串,以及“脸谱一个“i”为不区分大小写的匹配.COM “

相关问题