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


How to remove part of the string from one character to another in php

我有一个URL字符串,像

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:11是动态的。它是链接的ID,可以来自0 to any number。所以我想删除my_link_id:along with any dynamic number from the string

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

你可以使用正则表达式:

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

可以使用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

希望以下内容对您有所帮助

$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;