ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[PHP] ลบคำสั่งรูปภาพ "บางภาพ. ด้วย REGEX อย่างไร
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [PHP] ลบคำสั่งรูปภาพ "บางภาพ. ด้วย REGEX อย่างไร  (อ่าน 754 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
xmen256k
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 1,981



ดูรายละเอียด
« เมื่อ: 22 พฤษภาคม 2018, 18:25:42 »

สมมติให้มีคำสั่ง html ดังนี้ครับ

โค๊ด:
<img src="http://www.mydomain/image1_200x200.jpg" alt="xxx" />

<h2>Title</h2>

<img src="http://www.mydomain/image2.jpg" alt="yyy" />

<img src="http://www.mydomain/image3.jpg" />

อยากลบรูปแรกอย่างเดียวครับ โดยใช้ REGEX ใน PHP เข้าช่วย

และอ้างอิง 200x200

ไม่ทราบว่า จะเขียน REGEX อย่างไรได้บ้าง

ขอบคุณครับ

ผลลัพธ์ที่อยากได้

โค๊ด:
<h2>Title</h2>

<img src="http://www.mydomain/image2.jpg" alt="yyy" />

<img src="http://www.mydomain/image3.jpg" />
บันทึกการเข้า
cnxisne3019
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 282



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 22 พฤษภาคม 2018, 18:35:06 »

น่าจะแบบนี้มั้งครับ
โค๊ด:
\B(200x200)\b
  ไม่แน่ใจ ไม่ได้ใช้ RegEX มานานมากแล้ว ชินกับการใช้ Shell Script มันใช้ แบบ rm *200x200*.jpg ฮ่าๆ
บันทึกการเข้า

คนประสบความสำเร็จ       ไม่ใช่คนที่ “ไม่เคยพลาดเลย”
ในทางตรงกันข้าม...         เขาคือคนที่
“เริ่มพลาดเร็วกว่า”           “กล้าพลาดมากกว่า”
และสามารถ                   “เรียนรู้จากความผิดพลาด”
ได้เยอะกว่าคนทั่วไป...     #ข้อคิดจากขุนเขา

แหล่งความรู้ด้านการตลาดบนเว็บไซต์ และการเงินการลงทุน เข้าไปอ่านเลย
รวมของแจกฟรีจาก Themeforest, Envato Elements, Graphicriver, Audiojungle และอีกมากมายแบบถูกสิขสิทธิ์ สนใจเข้ากลุ่มโลด ดองไว้ในนั้นแหละ
xmen256k
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 1,981



ดูรายละเอียด
« ตอบ #2 เมื่อ: 22 พฤษภาคม 2018, 18:57:28 »

ผมได้อันนี้มาครับ แต่มันลบทุกภาพเลย ไม่ทราบว่าแก้ไขอย่างไรได้บ้างครับ

โค๊ด:
/<img[^>]+\>/i
บันทึกการเข้า
cnxisne3019
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 282



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 22 พฤษภาคม 2018, 19:21:29 »

ลองทดสอบอันนี้ดูครับ
โค๊ด:
/[^\n]*200x200.jpg[^\n]*\n?/g

ไม่มั่นใจว่าจะโอเคไหม ผลตามนี้ครับ

https://regexr.com/3pr56
« แก้ไขครั้งสุดท้าย: 22 พฤษภาคม 2018, 19:29:39 โดย cnxisne3019 » บันทึกการเข้า

คนประสบความสำเร็จ       ไม่ใช่คนที่ “ไม่เคยพลาดเลย”
ในทางตรงกันข้าม...         เขาคือคนที่
“เริ่มพลาดเร็วกว่า”           “กล้าพลาดมากกว่า”
และสามารถ                   “เรียนรู้จากความผิดพลาด”
ได้เยอะกว่าคนทั่วไป...     #ข้อคิดจากขุนเขา

แหล่งความรู้ด้านการตลาดบนเว็บไซต์ และการเงินการลงทุน เข้าไปอ่านเลย
รวมของแจกฟรีจาก Themeforest, Envato Elements, Graphicriver, Audiojungle และอีกมากมายแบบถูกสิขสิทธิ์ สนใจเข้ากลุ่มโลด ดองไว้ในนั้นแหละ
infamous
ก๊วนเสียว
*

พลังน้ำใจ: 14
ออฟไลน์ ออฟไลน์

กระทู้: 295



ดูรายละเอียด
« ตอบ #4 เมื่อ: 22 พฤษภาคม 2018, 19:33:26 »

ลบรูปภาพแรกใช้ preg_replace() ก็พอครับ

ส่วนเงื่อนไขต้องมี 200x200 ก็ใส่ตรง pattern เลยครับ

ตัวอย่าง

โค๊ด:
<?php

$html 
= &#39;<img src="http://www.mydomain/image1_200x200.jpg" alt="xxx" /><h2>Title</h2><img src="http://www.mydomain/image2.jpg" alt="yyy" /><img src="http://www.mydomain/image3.jpg" />&#39;;

echo preg_replace(&#39;/<img(.*?)200x200(.*?)\/>/i&#39;,&#39;&#39;,$html);

หรือถ้าแบบให้เสร็จเลยก็ด้านล่างนี้ครับ สำหรับ PHP

โค๊ด:
preg_match('/<img(.*?)200x200(.*?)>/i',$html,$match);
echo isset($match[0]) ? str_replace($match[0], '', $html) : 'not found image';

** Edit เพิ่มโค๊ด
« แก้ไขครั้งสุดท้าย: 22 พฤษภาคม 2018, 19:41:51 โดย infamous » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์