PHP bir dize bir karakter kaldırma

3 Cevap php

Benim php zayıf ve ben bu dizeyi değiştirmek için çalışıyorum:

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

olduğu:

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

sonra / kaldırma? backend.php üzerinde. Bunu yapmanın en iyi yolu herhangi bir fikir?

Teşekkürler!

3 Cevap

Ben manuel diyor gibi, sadece str_replace kullanmak daha iyi olduğunu düşünüyorum:

If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of ereg_replace() or preg_replace().

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

Düzenleme: CMS 'cevaba bakınız. Geç oldu, ben daha iyi bilmeli.

Bir sıradanifade gayet buraya uygun olur da, ben alternatif bir yöntem ile size sunacağız. Bu might daha hızlı eşdeğer regexp daha biraz olabilir, ancak tüm seçenekler hakkında hayat (... ya da bir şey).

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

Garip, biliyorum.