preg_match_all จะบังคับยังไง ให้ หาแค่ 5 ครั้งแล้วหยุด ครับ

เริ่มโดย untilate, 16 กรกฎาคม 2009, 19:35:40

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

untilate

ตอนนี้ผมเขียนอยู่แบบนี้


preg_match_all('#<img>(.*?)</img>#s', $xml, $matches);
foreach($matches[1] as $k => $v) {
echo $matches[1][$k]
;
}


ถ้าเขียนแบบนี้มันเจอกี่อันก็เอาออกมาหมด แต่ถ้าผมจะให้มัน เอาออกมาแค่ 5 อันแรก จะต้องเพิ่มอะไรเข้าไปครับ

ขอบคุณครับ  :-* :-*

EThaiZone


untilate

อ้างถึงจาก: EThaiZone ใน 16 กรกฎาคม 2009, 19:42:14
ทำไมไม่ใช้ for วนลูปแทนล่ะครับ  :P


ทำไม่เป็นครับ  :'( :'(

Script อันบน ผม ก็ไปเจอมาในบอร์ดนี้แหละครับ

kuznetsova

preg_match_all('#<img>(.*?)</img>#s', $xml, $matches);
$num=1;
foreach($matches[1] as $k => $v) {
if($num==5){
break;
}
echo $matches[1][$k];
$num++;
}

ลองดูครับ น่าจะได้ แต่ยังไม่ได้ เทส นะ
[direct=https://bit.ly/3y4IvVt]ซื้อล๊อตเตอรี่ต่างประเทศ Poweball MegaMillion[/direct]
เว็บที่ทำจาก Blogger สวยงามได้แค่ไหนชม
[direct=https://www.forexfights.com]วิธีเทรดฟอเร็กซ์ กรอบเวลาต่างๆ[/direct]
[direct=https://babbaan.in]แบบบ้านความรู้เรื่องบ้าน[/direct]
[direct=http://www.herb-health.com]แบบทรงผมข้อมูลด้านสุขภาพ ความงาม[/direct]

ball6847

เอาแค่ 5 ตัวแรกตัดไปได้เลยคับ ไม่ต้องวนอะไรเลยก็ได้

$matches[1] = array_slice($matches[1],0,5);




http://th.php.net/array_slice

array_slice มันก็คือ substr ของ array นี่แหละคับ ทำงานเหมือนกัน
We use Ubuntu.

[direct=http://ng-seo.sourcelab.xyz/]AngularJS SEO Experimental[/direct]

EThaiZone

อ้างถึงจาก: kuznetsova ใน 16 กรกฎาคม 2009, 19:54:56
preg_match_all('#<img>(.*?)</img>#s', $xml, $matches);
$num=1;
foreach($matches[1] as $k => $v) {
if($num==5){
break;
}
echo $matches[1][$k];
$num++;
}

ลองดูครับ น่าจะได้ แต่ยังไม่ได้ เทส นะ

แบบนี้ก็ได้

preg_match_all('#<img>(.*?)</img>#s', $xml, $matches);
foreach($matches[1] as $k => $v) {
if($k==4) break;
echo $matches[1][$k];
}

เพราะ $k ก็วนตามรอบ
เพียงแต่มันจะเริ่มนับจาก 0 ดังนั้นรอบที่ 5
ค่า k จะเป็น 4

pugkung

อ้างถึงจาก: ball6847 ใน 16 กรกฎาคม 2009, 20:22:36
เอาแค่ 5 ตัวแรกตัดไปได้เลยคับ ไม่ต้องวนอะไรเลยก็ได้

$matches[1] = array_slice($matches[1],0,5);




http://th.php.net/array_slice

array_slice มันก็คือ substr ของ array นี่แหละคับ ทำงานเหมือนกัน

โหย ได้ของเล่นใหม่อีกแล้ว   :D