Dalam pembangunan tapak web, kita sering menghadapi situasi di mana kita perlu menggantikan bahagian tertentu kod halaman dalam kelompok Contohnya, kita perlu menggantikan semua alamat imej (src) dalam halaman dengan alamat baharu. Pada masa ini, kita boleh menggunakan ungkapan biasa berkuasa yang disediakan oleh PHP untuk mencapai ini.
Pertama, kita perlu mendapatkan kod HTML yang perlu diubah suai. Anda boleh menggunakan fungsi file_get_contents() untuk membaca daripada fail atau mendapatkan kod HTML daripada URL.
$html = file_get_contents('http://www.example.com/page.html');
Kemudian, kita perlu membina ungkapan biasa untuk memadankan semua alamat imej pada halaman. Dalam halaman HTML, atribut src semua teg imej muncul dalam bentuk src="xxxxxx". Oleh itu, kita boleh membina ungkapan biasa untuk memadankan semua atribut src, seperti berikut:
$pattern = '/src=[\'"]([^\'"]+)[\'"]/i';
Dalam ungkapan biasa ini, kurungan segi empat sama [] digunakan untuk mewakili set aksara, yang termasuk petikan tunggal, petikan berganda Tanda petikan dan aksara lain kecuali petikan tunggal dan berganda. Tanda tambah + digunakan untuk memadankan set aksara sebelumnya sekurang-kurangnya sekali. Gunakan kurungan () untuk menunjukkan pengumpulan dan ekstrak nilai atribut src. Bendera /i digunakan untuk menunjukkan ketidakpekaan huruf besar-besaran.
Seterusnya, kita perlu menggunakan fungsi preg_replace_callback() untuk melaksanakan operasi penggantian. Fungsi ini boleh memanggil fungsi panggil balik untuk melaksanakan operasi penggantian bagi setiap hasil yang dipadankan. Dalam fungsi panggil balik ini, kita boleh mendapatkan nilai atribut src yang sepadan dan melakukan operasi penggantian.
$newHtml = preg_replace_callback($pattern, function($matches) { $oldSrc = $matches[1]; $newSrc = getNewSrc($oldSrc); return 'src="' . $newSrc . '"'; }, $html);
Dalam fungsi panggil balik ini, kita mula-mula memperoleh nilai atribut src yang dipadankan $oldSrc, dan kemudian memanggil fungsi getNewSrc() untuk mendapatkan alamat imej baharu $newSrc dan menetapkannya kepada atribut src , dan mengembalikan rentetan yang diganti.
Selepas menyelesaikan operasi penggantian, kami boleh mengeluarkan atau menyimpan kod HTML baharu ke fail.
echo $newHtml; file_put_contents('new.html', $newHtml);
Kod lengkap adalah seperti berikut:
$html = file_get_contents('http://www.example.com/page.html'); $pattern = '/src=[\'"]([^\'"]+)[\'"]/i'; $newHtml = preg_replace_callback($pattern, function($matches) { $oldSrc = $matches[1]; $newSrc = getNewSrc($oldSrc); return 'src="' . $newSrc . '"'; }, $html); echo $newHtml; file_put_contents('new.html', $newHtml); function getNewSrc($oldSrc) { // do something to get the new src return $newSrc; }
Dengan menggunakan ungkapan biasa PHP, kami boleh menggantikan bahagian tertentu halaman secara berkelompok dengan mudah, menjadikan pembangunan dan penyelenggaraan tapak web lebih cekap. .
Atas ialah kandungan terperinci php padankan penggantian src. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!