PHP在字符串中删除字符
我的PHP是弱,我试图改变这个字符串:PHP在字符串中删除字符
http://www.example.com/backend.php?/c=crud&m=index&t=care
^
是:
http://www.example.com/backend.php?c=crud&m=index&t=care
^
的backend.php?
后取出/
。任何想法最好的方式来做到这一点?
谢谢!
我认为这是最好使用简单str_replace,如手动说:
如果您不需要花哨的更换 的规则(比如正则表达式)这样做,你 应该始终使用此功能 代替ereg_replace()或 preg_replace()。
<?
$badUrl = "http://www.site.com/backend.php?/c=crud&m=index&t=care";
$goodUrl = str_replace('?/', '?', $badUrl);
$str = preg_replace('/\?\//', '?', $str);
编辑:请参阅CMS的答案。这很晚了,我应该知道更好。
谢谢,那很完美。 – 2008-11-05 06:48:01
str_replace比正则表达式要快得多。 – pestilence669 2011-10-01 22:01:49
@Pestilence,这就是为什么我推荐CMS的答案。 – eyelidlessness 2011-10-02 18:21:26
虽然正则表达式适合在这里很好,我会给你一个替代方法。它可能可能比等效的正则表达式更快一点,但生活的全部关于选择(...或某物)。
$length = strlen($urlString);
for ($i=0; $i<$length; i++) {
if ($urlString[$i] === '?') {
$urlString[$i+1] = '';
break;
}
}
奇怪,我知道。
$splitPos = strpos($url, "?/");
if ($splitPos !== false) {
$url = substr($url, 0, $splitPos) . "?" . substr($url, $splitPos + 2);
}
你应该真正标志着CMS”答案正确的。 – eyelidlessness 2008-11-05 06:50:00