PHP从字符串中删除域名

时间:2013-04-10 04:10:33

标签: php string

我需要从字符串末尾删除域名。我尝试了以下代码:

    $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。”。

我只需要从字符串末尾删除域名,如果域名存在于字符串中的任何位置,则不应删除该域名。如何更改代码呢?

应该感谢任何帮助!

7 个答案:

答案 0 :(得分:2)

不需要花哨的preg或substr ..只需使用trim()函数:)

将从两端删除

echo trim($string,$domainNAME);

将从字符串末尾删除domainName

echo rtrim($string,$domainNAME);

将从字符串

中删除domainName
echo 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);

Demo

答案 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);