我有一个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:1
中1
是动态的。它是链接的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;