ไฟล์ test.php ใช้วิธีการเขียนไฟล์ โดยอ่านข้อมูลเดิมและเขียนต่อข้างล่างลงไปเรื่อยๆ (write mode : a+)
ปกติ ก็จะเป็นวันที่ ไล่เรียงลงไปเรื่อย แต่ถ้าเกิดตัวแปร $i ซ้ำกับวันที่ที่มีอยู่ในไฟล์ test.php อยู่แล้ว เช่น $i = 2014-03-14 ดังภาพ

ถ้า Playlist name เป็นของวันที่ 2014-03-14 (โดยไม่สนเลข _Pl ที่อยู่หลัง 2014-03-14)
ต้องการลบทั้งหมดที่อยู่ใน แท็ก <playlist> “ทุกแถว” (ทั้งหมดในกรอบสีแดงตามภาพด้านบน)
ต่อมา เมื่อลบแล้ว..
ต้องการนำข้อมูลใหม่ ซึ่งก็คือ <playlist> ที่มี $i = 2014-03-14 มา “แทนที่” (ไม่ใช่ต่อท้ายสุด) ในจุดที่โดนลบออกไปนั่นเอง
*ซึ่งจำนวนแถวที่ลบกับจำนวนแถวที่มาเพิ่มอาจจะไม่เท่ากัน อาจจะมากหรือน้อยกว่าก็ได้ เช่น ลบออกไป 4 playlist ต้องการแทนที่ด้วย 2 playlist

ใช้ preg_match() ยังไง หรือใช้วิธีไหน
ตอบ
$x = '<form class="navbar-search" id="topsearch" action="/search.php">
<input type="hidden" name="show" value="quickref">
<input type="hidden" name="pattern" class="search-query" placeholder="Search" accesskey="s">
</form>';
$patt = '/<input type="(hidden)" name="show" value="quickref">/'; // แทน <input type="(hidden)" name="show" value="quickref"> ที่มี type="hidden" (hidden) คือตัวบอก
$replace = 'test';
$p = preg_replace($patt,$replace,$x);
echo htmlspecialchars($p);
$x คือ ข้อมูล มันก็คือ ตัวหนังสือทุกตัวใน Channel.txt
$x = file_get_contents('Channel.txt'); // อ่านไฟล์ Channel.txt เก็บข้อมูลไว้ใน $x$patt คือ pattern ที่คุณต้องการค้นหา เช่น คุณต้องการค้นหา <playlist name=”2014-11-11_xxx”> อะไรก็แล้วแต่ </playlist> ที่ name=”2014-11-11_xxx”
$patt = '/<playlist name="(2014-11-11)_xxx"> อะไรก็แล้วแต่ <\/playlist>/'; // (2014-11-11) บอกว่าต้องการค้นหาที่มี 2014-11-11
$replace คือ ข้อมูลที่จะเอาไปแทนที่ เช่นจะแทนที่ด้วย <playlist name=”2014-12-15_xxx”> อะไรก็แล้วแต่ </playlist>
$replace = '<playlist name="2014-12-15_xxx"> อะไรก็แล้วแต่ </playlist>';
$p = preg_replace($patt,$replace,$x); คือ ค้นอะไรที่เหมือนกับ $patt ใน $x แล้ว แทนที่ดี $replace
$x = file_get_contents('Channel.txt');
$patt = '/<playlist name="(2014-11-11)_xxx"> อะไรก็แล้วแต่ <\/playlist>/';
$replace = '<playlist name="'.$i.'_xxx"> อะไรก็แล้วแต่ </playlist>'; // $i = 2014-03-14
$p = preg_replace($patt,$replace,$x); // $p จะเก็บค่าใหม่ของ $x
echo htmlspecialchars($p);
เพิ่มเติม
$patt = '/<playlist name="(2014-11-11)_xxx"> อะไรก็แล้วแต่ <\/playlist>/'; // (2014-11-11) บอกว่าต้องการค้นหาที่มี 2014-11-11 โค๊ดนี้หมายความว่า $patt จะ = playlist name ทุกอันที่มีตัวเลข (2014-11-11) แม้ว่า _xxx หรือตรง "อะไรก็แล้วแต่" จะไม่เหมือนกัน เช่น <playlist name="2014-12-11_001"> A </playlist> <playlist name="2014-12-11_002"> B </playlist> <playlist name="2014-12-12_003"> C </playlist> <playlist name="2014-12-15_001"> D </playlist> $patt จะ = ทุกบรรรทัดที่มี (2014-11-11) แม้ว่าส่วนอื่นจะไม่เหมือนกัน ก็จะได้ <playlist name="2014-12-11_001"> A </playlist> <playlist name="2014-12-11_002"> B </playlist>