如何在php中从一个字符中删除部分字符串到另一个字符

时间:2014-03-10 04:54:30

标签: php string replace

我有一个像

这样的网址字符串
http://mydomain.com/status/statusPages/state/stack:3/my_link_id:1#state-9

我想从此字符串中删除my_link_id:1。我知道我可以使用任何字符串替换函数,如

$goodUrl = str_replace('my_link_id:1', '', $badUrl);

但问题是,整数部分是动态的。我的意思是在my_link_id:1中,1是动态的。它是链接的ID,可以来自0 to any number。所以我想删除my_link_id:along with any dynamic number from the string

我认为我应该删除从上一个/#的部分字符串。但是我该怎么做呢?

3 个答案:

答案 0 :(得分:1)

你可以使用正则表达式:

$goodUrl = preg_replace('/(my_link_id:[0-9]+)/ig', '', $badUrl);

答案 1 :(得分:0)

您可以使用preg_replace()php函数

http://in1.php.net/preg_replace

代码:

  <?php  $string = "http://mydomain.com/status/statusPages/state/stack:3/my_link_id:1#state-9";       
       echo  $result = preg_replace('/(my_link_id:[0-9]+)/si', '', $string);
    ?>

输出:

http://mydomain.com/status/statusPages/state/stack:3/#state-9

答案 2 :(得分:0)

可以帮助你

$strUrl = "http://mydomain.com/status/statusPages/state/stack:3/my_link_id:1#state-9";
$finalUrl = preg_replace('/(my_link_id:[0-9]+)/i', '', $strUrl);
echo $finalUrl;

如果你想删除最后/和#你遵循这个代码

$strUrl = "http://mydomain.com/status/statusPages/state/stack:3/my_link_id:1#state-9";
$finalUrl = preg_replace('/(\/my_link_id:[0-9]+#)/i', '', $strUrl);
echo $finalUrl;