Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Amalan ungkapan biasa PHP: pautan imej yang sepadan

Amalan ungkapan biasa PHP: pautan imej yang sepadan

WBOY
WBOYasal
2023-06-23 08:20:371586semak imbas

Dalam proses pembangunan web, kami selalunya perlu mengekstrak pautan imej daripada artikel untuk memaparkan imej atau menyimpannya secara setempat. Pada masa ini, ungkapan biasa menjadi alat penting. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan pautan imej dan menjalankan latihan praktikal melalui kod sampel.

1. Peraturan pemadanan untuk pautan imej

Dalam halaman web yang sangat kompleks dan boleh diubah, format pautan imej berbeza-beza. Berikut ialah beberapa format pautan imej biasa:

  1. Format laluan relatif

f2c1e9d33d026e38180fdaa6edf6d2ca

  1. Format laluan mutlak

203f1b65967aec8ac84e3c48ece3b17f

  1. Format dengan kelas, lebar, tinggi dan atribut lain

2bd3635dc817ed645d896e95b1b411bc

  1. Format dengan petikan tunggal atau berganda

43da36405eba3590ad94f87e6fbdb6a4

  1. Format yang mengandungi akhiran berbeza

e889b71e302f340a8f1d6e5396d112ac
9086b68fddc20f80999dfb7d0934f895
217c4c9c0bfdcc48e7c384dfc9089874

Mengikut format di atas, kita boleh meringkaskan peraturan pemadanan umum, seperti berikut:

/584f3fcf6df5e04e08e659839165b380/i

Di mana, ungkapan biasa Beberapa makna adalah seperti berikut:

  • 1d0a94b69819f080670a8fe502661b4a: sepadan dengan teg a1f02c36ba31691bcfe87b2722de723b
  • src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"]: sepadan dengan nilai atribut src dan nilai atribut mesti disertakan dalam dua kali ganda petikan atau petikan tunggal Dibalut dengan tanda petikan, berbilang akhiran disokong pada masa yang sama.
  • .*?: digunakan untuk memadankan atribut lain dalam teg a1f02c36ba31691bcfe87b2722de723b
  • i: Menunjukkan ketidakpekaan huruf besar-besaran.

2. Gunakan kod PHP untuk memadankan pautan imej

Seterusnya, kami akan menggunakan PHP untuk memadankan pautan imej.

  1. Gunakan fungsi preg_match untuk memadankan pautan imej tunggal

Fungsi preg_match digunakan untuk melakukan pemadanan ungkapan biasa pada rentetan tunggal. Berikut ialah kod PHP untuk memadankan pautan imej tunggal:

<?php
$str = '<img src="../images/picture.jpg" class="picture" width="100" height="100">';
$pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
preg_match($pattern, $str, $matches);
echo $matches[1];
?>

Keluaran kod di atas ialah:

../images/picture.jpg

  1. Gunakan fungsi preg_match_all untuk memadankan berbilang pautan imej

Fungsi preg_match_all digunakan untuk melaksanakan pemadanan ungkapan biasa pada set rentetan. Berikut ialah kod PHP untuk memadankan berbilang pautan imej:

<?php
$str = '
<img src="../images/picture.jpg" class="picture" width="100" height="100">
<img src="http://www.example.com/images/picture.jpg">
<img src="http://www.example.com/images/picture.png">
<img src="http://www.example.com/images/picture.gif">
';
$pattern = '/<img.*?src=['"](.*?(?:gif|jpg|jpeg|bmp|png))['"].*?>/i';
preg_match_all($pattern, $str, $matches);
print_r($matches[1]);
?>

Keluaran kod di atas ialah:

Array
(

[0] => ../images/picture.jpg
[1] => http://www.example.com/images/picture.jpg
[2] => http://www.example.com/images/picture.png
[3] => http://www.example.com/images/picture.gif

)

3. Ringkasan

Artikel ini memperkenalkan cara menggunakan ungkapan biasa PHP untuk memadankan pautan imej dan menyediakan kod contoh untuk latihan praktikal. Dalam pembangunan sebenar, kita boleh mengubah suai peraturan padanan ungkapan biasa mengikut keperluan. Pada masa yang sama, anda juga boleh menggunakan pautan imej yang dipadankan untuk operasi seperti paparan imej, muat turun atau penyimpanan.

Atas ialah kandungan terperinci Amalan ungkapan biasa PHP: pautan imej yang sepadan. 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