我的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?
後取出/
。任何想法最好的方式來做到這一點?
謝謝!
我的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?
後取出/
。任何想法最好的方式來做到這一點?
謝謝!
我認爲這是最好使用簡單str_replace,如手動說:
如果您不需要花哨的更換 的規則(比如正則表達式)這樣做,你 應該始終使用此功能 代替ereg_replace()或 preg_replace()。
<?
$badUrl = "http://www.site.com/backend.php?/c=crud&m=index&t=care";
$goodUrl = str_replace('?/', '?', $badUrl);
$str = preg_replace('/\?\//', '?', $str);
編輯:請參閱CMS的答案。這很晚了,我應該知道更好。
謝謝,那很完美。 – 2008-11-05 06:48:01
str_replace比正則表達式要快得多。 – pestilence669 2011-10-01 22:01:49
@Pestilence,這就是爲什麼我推薦CMS的答案。 – eyelidlessness 2011-10-02 18:21:26
雖然正則表達式適合在這裏很好,我會給你一個替代方法。它可能可能比等效的正則表達式更快一點,但生活的全部關於選擇(...或某物)。
$length = strlen($urlString);
for ($i=0; $i<$length; i++) {
if ($urlString[$i] === '?') {
$urlString[$i+1] = '';
break;
}
}
奇怪,我知道。
$splitPos = strpos($url, "?/");
if ($splitPos !== false) {
$url = substr($url, 0, $splitPos) . "?" . substr($url, $splitPos + 2);
}
你應該真正標誌着CMS」答案正確的。 – eyelidlessness 2008-11-05 06:50:00