Rumah >pembangunan bahagian belakang >tutorial php >Mengapa Saya Mendapat Ralat 'preg_replace(): Unknown Modifier' dalam PHP?

Mengapa Saya Mendapat Ralat 'preg_replace(): Unknown Modifier' dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-31 17:51:10411semak imbas

Why Am I Getting the

Amaran: preg_replace(): Unknown Modifier

Ikhtisar

Ralat ini berlaku apabila pengubah yang digunakan dalam ungkapan biasa tidak dikenali oleh PHP preg_replace() fungsi.

Punca

Dua punca biasa termasuk:

  1. Pembatas Hilang: Corak ungkapan biasa tidak disertakan dalam pembatas (cth., garis miring, tanda kurung).
  2. Tidak terlepas Pembatas: Corak mengandungi aksara pembatas tanpa melepaskannya menggunakan garis miring ke belakang ().

Contoh

Pertimbangkan kod berikut:

echo str_replace("</ul></div>", "", preg_replace("<div[^>]*><ul[^>]*>", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)) ));

Kod ini mungkin menghasilkan ralat kerana ungkapan biasa kekurangan pembatas:

<div[^>]*><ul[^>]

Penyelesaian

1. Menambah Pembatas:

Sertakan corak dengan pembatas yang sah, seperti:

preg_replace "~<div[^>]*><ul[^>]~", "", ...

2. Melarikan Diri Pembatas:

Jika corak mengandungi aksara pembatas, elakkannya menggunakan :

preg_replace "/foo[^/]+bar/i", "", ...

Pengesyoran

  • Gunakan pembatas berbeza jika corak mengandungi pembatas yang ditentukan.
  • Pertimbangkan untuk menggunakan preg_quote() untuk secara automatik pembatas melarikan diri.
  • Rujuk dokumentasi pembatas regex PHP untuk pilihan yang sah.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat 'preg_replace(): Unknown Modifier' dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn