我有一个像
这样的网址字符串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
。
我认为我应该删除从上一个/
到#
的部分字符串。但是我该怎么做呢?
答案 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;