我需要从字符串末尾删除域名。我尝试过以下代码:
$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.”。
我只需要从字符串末尾删除域名,如果域名存在于字符串中的任何位置,则不应删除它。如何更改代码?
任何帮助都值得赞赏!
最佳答案
不需要花哨的 preg 或 substr.. 只需使用 trim()功能:)
将从两端移除
echo trim($string,$domainNAME);
将从字符串末尾删除域名
echo rtrim($string,$domainNAME);
将从字符串开头删除域名
echo ltrim($string,$domainNAME);
示例
echo rtrim('demo.test.example.com',"example.com");
//@return demo.test
第二种方法
如果没有..那么使用预匹配:)。
$new_str = preg_replace("/{$domainNAME}$/", '', $str);
仅当 $domainNAME 位于 $str 末尾时,这才会替换 $str 中的 $domainNAME(var 后面的 $ 符号表示 AT 字符串末尾。
关于PHP 从字符串中删除域名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15916776/