Подтвердить что ты не робот

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?. Любые идеи о том, как это сделать?

Спасибо!

4b9b3361

Ответ 1

Я думаю, что лучше использовать просто str_replace, как говорится в руководстве:

Если вам не нужна причудливая замена правила (например, регулярные выражения), вы должна всегда использовать эту функцию вместо ereg_replace() или preg_replace().

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

Ответ 2

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

Изменить: см. ответ CMS. Поздно, я должен знать лучше.

Ответ 3

В то время как regexp устраивает здесь просто отлично, я представлю вам альтернативный метод. Это может быть чуть быстрее, чем эквивалентное регулярное выражение, но все зависит от выбора (... или чего-то другого).

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

Странно, я знаю.

Ответ 4

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