PHP删除字符串中的字符

时间:2008-11-05 06:34:40

标签: php string

我的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?。有关最佳方法的任何想法吗?

谢谢!

4 个答案:

答案 0 :(得分:107)

我认为最好只使用str_replace,就像手册中说的那样:

  

如果你不需要花哨的替换   规则(如正则表达式),你   应始终使用此功能   而不是ereg_replace()或   的preg_replace()。

<?
$badUrl = "http://www.site.com/backend.php?/c=crud&m=index&t=care";
$goodUrl = str_replace('?/', '?', $badUrl);

答案 1 :(得分:8)

$str = preg_replace('/\?\//', '?', $str);

编辑:请参阅CMS的回答。已经很晚了,我应该知道的更好。

答案 2 :(得分:0)

虽然regexp适合这里很好,但我会给你一个替代方法。它可能比同等的正则表达式快一点,但生活都是关于选择(......或其他)。

$length = strlen($urlString);
for ($i=0; $i<$length; i++) {
  if ($urlString[$i] === '?') {
    $urlString[$i+1] = '';
    break;
  }
}

很奇怪,我知道。

答案 3 :(得分:0)

$splitPos = strpos($url, "?/");
if ($splitPos !== false) {
    $url = substr($url, 0, $splitPos) . "?" . substr($url, $splitPos + 2);
}