it-swarm.com.de

PHP Entfernen eines Zeichens in einem String

Mein PHP ist schwach und ich versuche diese Zeichenkette zu ändern:

http://www.example.com/backend.php?/c=crud&m=index&t=care
                                   ^

sein:

http://www.example.com/backend.php?c=crud&m=index&t=care
                                  ^

entferne den / nach dem backend.php?. Irgendwelche Ideen, wie man das am besten macht?

Vielen Dank!

36
Zero Cool

Ich denke, dass es besser ist, einfach str_replace zu verwenden, wie im Handbuch steht:

Wenn Sie keine Regeln ersetzen möchten (wie reguläre Ausdrücke), sollten Sie diese Funktion immer anstelle von ereg_replace () oder preg_replace () verwenden.

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

Bearbeiten: Siehe Antwort von CMS. Es ist spät, ich sollte es besser wissen.

8
eyelidlessness

Während ein regulärer Ausdruck hier völlig in Ordnung wäre, präsentiere ich Ihnen eine alternative Methode. Es ist könnte ein bisschen schneller als der entsprechende reguläre Ausdruck, aber im Leben dreht sich alles um Entscheidungen (... oder so).

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

Komisch, ich weiß.

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