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?
. Любые идеи о том, как это сделать?
Спасибо!
Ответы
Ответ 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);
}