Php saya lemah dan saya mencoba mengubah string ini:
http://www.example.com/backend.php?/c=crud&m=index&t=care
^
menjadi:
http://www.example.com/backend.php?c=crud&m=index&t=care
^
menghapus /
setelah backend.php?
. Adakah ide tentang cara terbaik untuk melakukan ini?
Terima kasih!
Saya pikir lebih baik menggunakan str_replace, seperti yang dikatakan dalam manual:
Jika Anda tidak memerlukan penggantian yang mewah aturan-aturan (seperti ekspresi reguler), Anda Anda harus selalu menggunakan fungsi ini bukannya ereg_replace() atau preg_replace().
<?
$badUrl = "http://www.site.com/backend.php?/c=crud&m=index&t=care";
$goodUrl = str_replace('?/', '?', $badUrl);
$str = preg_replace('/\?\//', '?', $str);
Sunting: Lihat jawaban CMS. Ini sudah larut, saya seharusnya tahu lebih baik.
Meskipun regexp akan cocok di sini dengan baik, saya akan memberikan Anda metode alternatif. Ini mungkin sedikit lebih cepat daripada regexp yang setara, tetapi hidup adalah tentang pilihan (....atau semacamnya).
$length = strlen($urlString);
for ($i=0; $i<$length; i++) {
if ($urlString[$i] === '?') {
$urlString[$i+1] = '';
break;
}
}
Aneh, saya tahu.