我需要从字符串末尾删除域名。我尝试了以下代码:
$domainNAME="example.com";
$result="_xmpp-client._tcp.example.com..example.com"
$string = $result;
$string = str_replace(".".$domainNAME, " ", $string);
结果是“ _xmpp-client._tcp。”。但结果应为“ _xmpp-client._tcp.example.com。”。
我只需要从字符串末尾删除域名,如果域名存在于字符串中的任何位置,则不应删除该域名。如何更改代码呢?
应该感谢任何帮助!
答案 0 :(得分:2)
不需要花哨的preg或substr ..只需使用trim()函数:)
将从两端删除
echo trim($string,$domainNAME);
将从字符串末尾删除domainName
echo rtrim($string,$domainNAME);
将从字符串
中删除domainNameecho ltrim($string,$domainNAME);
示例强>
echo rtrim('demo.test.example.com',"example.com");
//@return demo.test
第二种方法
如果没有..那么使用preg match:)。
$new_str = preg_replace("/{$domainNAME}$/", '', $str);
这将取代$ str的$ domainNAME,如果它在$ str的末尾(var后的$符号表示字符串的AT结尾。
答案 1 :(得分:1)
您可以使用preg_replace并指定字符串标记$
的结尾:
$string = preg_replace("/" . $domainNAME . "$/", " ", $string);
答案 2 :(得分:1)
$domainNAME="example.com";
$result="_xmpp-client._tcp.example.com..example.com";
$string = $result;
$string = substr($result,0, strrpos($result, $domainNAME)-1);
echo $string;
答案 3 :(得分:1)
如果您真的希望将输出作为_xmpp-client._tcp.example.com.
,最后使用点
preg_replace("/\." . $domainNAME . "$/", " ", $string);
你可以添加吗?如果你想要它是可选的
preg_replace("/\.?" . $domainNAME . "$/", " ", $string);
答案 4 :(得分:0)
答案 5 :(得分:0)
$domainNAME="example.com";
$length = strlen(".".$domainNAME);
$result="_xmpp-client._tcp.example.com..example.com";
$string = substr($result, 0, $length*(-1));
试试吧。我希望它可以帮到你
答案 6 :(得分:0)
使用str_ireplace('example.com.example.com', 'example.com', $string);