Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menggantikan Teks Di Luar Tag HTML dengan Selamat Menggunakan Ungkapan Biasa PHP?

Bagaimana untuk Menggantikan Teks Di Luar Tag HTML dengan Selamat Menggunakan Ungkapan Biasa PHP?

Linda Hamilton
Linda Hamiltonasal
2024-11-26 16:08:13408semak imbas

How to Safely Replace Text Outside HTML Tags Using PHP Regular Expressions?

Cara Mengecualikan Padanan Dalam Teg HTML dalam Ungkapan Biasa PHP

Apabila melakukan carian ungkapan biasa dan menggantikan pada dokumen HTML, ia adalah penting untuk memastikan bahawa penggantian tidak mengubah suai teg HTML secara tidak sengaja. Untuk menangani cabaran ini, berikut ialah penyelesaian menggunakan penegasan pandang ke hadapan dalam ungkapan biasa PHP:

$pattern = "/(asf|foo|barr)(?=[^>]*(<|$))/";

Penjelasan:

  • Pengumpulan Corak: Corak menyertakan tiga kemungkinan istilah carian (asf, foo dan barr) dalam kurungan.
  • Penegasan Pandangan Depan: Penegasan pandang ke hadapan (?=[^>]*(<|$)) sepadan dengan sebarang kejadian istilah carian yang diikuti oleh sebarang bilangan bukan-> aksara (sehingga, tetapi tidak termasuk, a <) atau penghujung baris.

Akibatnya, ungkapan biasa ini mengabaikan padanan yang berlaku dalam teg HTML, dengan berkesan menghalang pengubahsuaian yang tidak diingini pada HTML struktur. Ungkapan ini boleh digunakan dalam preg_replace() untuk menyasarkan teks secara selektif di luar teg HTML.

Sebagai contoh, pertimbangkan teks HTML berikut:

<a href="example.com" alt="yasar home page">yasar</a>

Menggunakan fungsi preg_replace() dengan corak yang disediakan, anda boleh menggantikan kejadian yasar di luar teg anchor dengan teg span tersuai, menghasilkan dalam:

<a href="example.com" alt="yasar home page">yasar</a>
yasar

Dalam contoh ini, atribut alt dalam teg anchor kekal tidak diubah suai.

Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Teks Di Luar Tag HTML dengan Selamat Menggunakan Ungkapan Biasa 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