Menggantikan Hanya Kejadian Pertama dengan str_replace
Walaupun tiada fungsi str_replace terbina dalam yang mengehadkan penggantiannya kepada kejadian pertama, secara relatifnya penyelesaian yang mudah wujud tanpa menggunakan yang rumit hacks.
Untuk mencapai ini, gunakan fungsi strpos untuk mencari kedudukan subrentetan dalam rentetan utama. Setelah dikenal pasti, gunakan substr_replace untuk mengubah suai rentetan asal, menyatakan kedudukan kejadian dan panjang subrentetan itu. Kaedah ini dengan cekap menggantikan kejadian pertama tanpa overhed ungkapan biasa.
Contoh Kod:
$haystack = "This is a sample string"; $needle = "is"; $replace = "was"; $pos = strpos($haystack, $needle); if ($pos !== false) { $newstring = substr_replace($haystack, $replace, $pos, strlen($needle)); } echo $newstring; // Output: "This was a sample string"
Bonus: Untuk menggantikan yang terakhir kejadian, gantikan strpos dengan strrpos:
$pos = strrpos($haystack, $needle); if ($pos !== false) { $newstring = substr_replace($haystack, $replace, $pos, strlen($needle)); }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Hanya Kejadian Pertama (atau Terakhir) Substring dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!