Rumah pembangunan bahagian belakang tutorial php php正则婚配图片路径看preg_match_all()函数用法

php正则婚配图片路径看preg_match_all()函数用法

Jun 13, 2016 am 11:03 AM
array gt img jpg string

php正则匹配图片路径看preg_match_all()函数用法

php正则匹配图片路径看preg_match_all()函数用法.<p>先看php代码:</p><pre class="php" name="code">$ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.k686.com 绿色软件$str = '<p><img src="/static/imghw/default1.png"  data-src="http://www.k686.com/data/soft_img/2010091101619.jpg"  class="lazy"  title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" /></p>';preg_match_all("/(href|src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $str, $matches);var_dump($matches);
Salin selepas log masuk

?

以上代码执行后的结果为:

array(5) {  [0]=>  array(1) {    [0]=>    string(57) "src="http://www.k686.com/data/soft_img/2010091101619.jpg""  }  [1]=>  array(1) {    [0]=>    string(3) "src"  }  [2]=>  array(1) {    [0]=>    string(1) """  }  [3]=>  array(1) {    [0]=>    string(51) "http://www.k686.com/data/soft_img/2010091101619.jpg"  }  [4]=>  array(1) {    [0]=>    string(3) "jpg"  }}
Salin selepas log masuk

?

?

<p>这里我们来温习下php手册上的函数说明:</p>
Salin selepas log masuk
preg_match_all -- 进行全局正则表达式匹配说明int preg_match_all ( string pattern, string subject, array matches [, int flags] )在 subject 中搜索所有与 pattern 给出的正则表达式匹配的内容并将结果以 flags 指定的顺序放到 matches 中。 搜索到第一个匹配项之后,接下来的搜索从上一个匹配项末尾开始。 flags 可以是下列标记的组合(注意把 PREG_PATTERN_ORDER 和 PREG_SET_ORDER 合起来用没有意义): PREG_PATTERN_ORDER对结果排序使 $matches[0] 为全部模式匹配的数组,$matches[1] 为第一个括号中的子模式所匹配的字符串组成的数组,以此类推。 <?phppreg_match_all ("|<[^>]+>(.*)</[^>]+>|U",    "<b>example: </b><div align=left>this is a test</div>",    $out, PREG_PATTERN_ORDER);print $out[0][0].", ".$out[0][1]."\n";print $out[1][0].", ".$out[1][1]."\n";?>  本例将输出: <b>example: </b>, <div align=left>this is a test</div>example: , this is a test 因此,$out[0] 包含匹配整个模式的字符串,$out[1] 包含一对 HTML 标记之间的字符串。 
Salin selepas log masuk

?

可能还是有点迷糊,继续测试,这次换用多个图片地址,就能看的一清二楚了.

<?php$ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.k686.com 绿色软件$str = '<p><img src="/static/imghw/default1.png"  data-src="http://www.k686.com/data/soft_img/2010091101619.jpg"  class="lazy"  title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" /></p><p><img src="/static/imghw/default1.png"  data-src="http://www.k686.com/data/soft_img/2010091029938.jpg"  class="lazy"  title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" /></p><p><img src="/static/imghw/default1.png"  data-src="http://www.k686.com/data/soft_img/2010092839019.jpg"  class="lazy"  title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" /></p>';preg_match_all("/(href|src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $str, $matches);var_dump($matches);?>
Salin selepas log masuk

?

?

结果为:

array(5) {  [0]=>  array(3) {    [0]=>    string(57) "src="http://www.k686.com/data/soft_img/2010091101619.jpg""    [1]=>    string(57) "src="http://www.k686.com/data/soft_img/2010091029938.jpg""    [2]=>    string(57) "src="http://www.k686.com/data/soft_img/2010092839019.jpg""  }  [1]=>  array(3) {    [0]=>    string(3) "src"    [1]=>    string(3) "src"    [2]=>    string(3) "src"  }  [2]=>  array(3) {    [0]=>    string(1) """    [1]=>    string(1) """    [2]=>    string(1) """  }  [3]=>  array(3) {    [0]=>    string(51) "http://www.k686.com/data/soft_img/2010091101619.jpg"    [1]=>    string(51) "http://www.k686.com/data/soft_img/2010091029938.jpg"    [2]=>    string(51) "http://www.k686.com/data/soft_img/2010092839019.jpg"  }  [4]=>  array(3) {    [0]=>    string(3) "jpg"    [1]=>    string(3) "jpg"    [2]=>    string(3) "jpg"  }}
Salin selepas log masuk

?

?

对比下第一个简单的单图片例子,我们就更清楚需要哪一个元素了.一般情况下,我们是为了得到图片的真实直接路径,也就是 $matches[3] ,取出来做个foreach就可以继续下面的处理了.

?

实际上这个代码比较死板,正则可以改为:

preg_match_all('/<img (.*?)src=("|\'|\s)?(.*?)(?="|\'|\s)/',$str,$arr2);</pre alt="php正则婚配图片路径看preg_match_all()函数用法" ><p>?</p><p>其他不变.因为有些变态网站图片没有扩展名,就没辙了,所以换上面这个正则,管他什么扩展名,只要是img开头的,就跑不离是图片了.</p><pre class='brush:php;toolbar:false;'>	function getname($fileext){		if( !in_array($fileext,array('gif','jpg','jpeg','bmp','png')) ) $fileext = 'png';		return date('Ymdhis').rand(100, 999).'.'.$fileext;	}
Salin selepas log masuk

?

这个是返回图片后缀,没有就默认png

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk membuka fail img Bagaimana untuk membuka fail img Sep 18, 2023 am 09:40 AM

Kaedah untuk membuka fail img termasuk menggunakan perisian pemacu optik maya, menggunakan perisian pemampatan dan menggunakan alat khas. Pengenalan terperinci: 1. Gunakan perisian pemacu optik maya untuk membuka, memuat turun dan memasang perisian pemacu optik maya, klik kanan fail img, pilih "Buka dengan" atau "Program Bersekutu", pilih perisian pemacu optik maya yang dipasang dalam pop timbul kotak dialog -up, maya Perisian pemacu optikal secara automatik akan memuatkan fail img dan menggunakannya sebagai imej cakera dalam pemacu optik maya Klik dua kali pada ikon cakera dalam pemacu optik maya untuk membuka fail img dan mengakses kandungannya. dll.

Bagaimana untuk menukar PNG kepada JPG pada Windows 11 Bagaimana untuk menukar PNG kepada JPG pada Windows 11 May 12, 2023 pm 03:55 PM

Cara Menukar PNG kepada JPG pada Windows 11 Pada Windows 10 dan 11, anda boleh menggunakan aplikasi Paint terbina dalam Microsoft untuk menukar fail imej dengan cepat. Untuk menukar imej PNG kepada JPG pada Windows 11, gunakan langkah berikut: Buka File Explorer dan navigasi ke imej PNG yang anda ingin tukar. Klik kanan imej dan pilih Buka Dengan > Lukis daripada menu. Foto atau imej anda dibuka dalam apl Paint. Perhatikan saiz fail di bahagian bawah skrin. Untuk menukar fail daripada PNG kepada JPG, klik Fail dan pilih Simpan Sebagai > Imej JPEG daripada menu. Apabila sumber fail

Apakah perbezaan antara Huawei GT3 Pro dan GT4? Apakah perbezaan antara Huawei GT3 Pro dan GT4? Dec 29, 2023 pm 02:27 PM

Ramai pengguna akan memilih jenama Huawei apabila memilih jam tangan pintar Antaranya, Huawei GT3pro dan GT4 adalah pilihan yang sangat popular. Apakah perbezaan antara Huawei GT3pro dan GT4? 1. Rupa GT4: 46mm dan 41mm, bahan cermin kaca + badan keluli tahan karat + cangkang belakang gentian resolusi tinggi. GT3pro: 46.6mm dan 42.9mm, bahannya ialah kaca nilam + badan titanium/badan seramik + cangkerang belakang seramik 2. GT4 yang sihat: Menggunakan algoritma Huawei Truseen5.5+ terkini, hasilnya akan lebih tepat. GT3pro: Penambahan elektrokardiogram ECG dan saluran darah serta keselamatan

Betulkan: Tidak dapat membuka fail JPG dalam Windows 11 Betulkan: Tidak dapat membuka fail JPG dalam Windows 11 Apr 17, 2023 pm 12:37 PM

JPG ialah salah satu format fail imej yang paling popular bersama dengan PNG. Ini ialah format imej mampat lossy yang sesuai untuk tapak web. Oleh itu, ramai pengguna menyimpan atau menukar imej kepada format JPG. Walau bagaimanapun, sesetengah pengguna telah menyatakan bahawa mereka menghadapi masalah membuka fail JPG dalam Windows 11 menggunakan aplikasi Foto lalai platform. Oleh itu, pengguna ini tidak boleh membuka, melihat dan mengedit imej format JPG dalam Windows 11. Inilah yang dikatakan oleh seorang pengguna dalam siaran forum Microsoft: Apabila mengklik dua kali fail JPG untuk dibuka dalam Microsoft Photo, saya menerima ralat Program yang ditentukan tidak dapat ditemui. Ini dibeli baharu kira-kira sebulan yang lalu

Tukar jenis data asas kepada rentetan menggunakan fungsi String.valueOf() Java Tukar jenis data asas kepada rentetan menggunakan fungsi String.valueOf() Java Jul 24, 2023 pm 07:55 PM

Tukar jenis data asas kepada rentetan menggunakan fungsi String.valueOf() Java Dalam pembangunan Java, apabila kita perlu menukar jenis data asas kepada rentetan, kaedah biasa ialah menggunakan fungsi valueOf() kelas String. Fungsi ini boleh menerima parameter jenis data asas dan mengembalikan perwakilan rentetan yang sepadan. Dalam artikel ini, kami akan meneroka cara menggunakan fungsi String.valueOf() untuk penukaran jenis data asas dan menyediakan beberapa contoh kod untuk

Bagaimana untuk membuka fail img Bagaimana untuk membuka fail img Jul 06, 2023 pm 04:17 PM

Cara membuka fail img: 1. Sahkan laluan fail img 2. Gunakan pembuka fail img 3. Pilih kaedah pembukaan; 5. Simpan gambar; Fail img ialah format fail imej yang biasa digunakan, biasanya digunakan untuk menyimpan data gambar.

Bagaimana untuk menukar tatasusunan char kepada rentetan Bagaimana untuk menukar tatasusunan char kepada rentetan Jun 09, 2023 am 10:04 AM

Kaedah menukar tatasusunan char kepada rentetan: Ia boleh dicapai dengan penugasan Gunakan sintaks {char a[]=" abc d\0efg ";string s=a;} untuk membenarkan tatasusunan char terus memberikan nilai kepada rentetan, dan laksanakan. kod untuk melengkapkan penukaran.

Mari kita bincangkan tentang cara menggunakan php untuk menukar WebP kepada JPG dengan mudah. Mari kita bincangkan tentang cara menggunakan php untuk menukar WebP kepada JPG dengan mudah. Mar 24, 2023 pm 02:57 PM

Dalam tahun-tahun kebelakangan ini, dengan pembangunan berterusan teknologi Web, WebP, format imej baharu, secara beransur-ansur memasuki bidang visi pengaturcara dan pembangun Web. Kelebihan WebP tidak boleh diabaikan: saiz fail kecil, kualiti tinggi, sokongan pelayar tinggi, dsb. Tetapi dalam beberapa kes, kami mungkin perlu menukar imej WebP kepada beberapa format lain, seperti JPG. Jadi, bagaimana menggunakan PHP untuk menukar WebP kepada JPG?

See all articles