หัวข้อ: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 04 สิงหาคม 2012, 19:37:06
คือผมใช้ preg_match_all ดึงภาพจากฐานข้อมูลออกมาได้ แต่จะใช้ตัวแปรตัวใดที่จะไปรับ url มาแสดงได้ครับ ยกตัวอย่าง สมมุติ $message เท่ากับไฟล์ภาพที่ถูกล้วงดึงออกมาจากฐานข้อมูลได้ <? $message = "ลีจีอา Lee Ji Ah ดาราเกาหลี[img]http://www.pingbook.com/archive/200906241245819327.jpg[/img]";
preg_match_all('~\[img\]([^\[]+)\[\/img\]~',$message,$img); print_r($img);
?>
Out put ที่ออกมาจะได้แบบนี้ : Array ( [0] => Array ( [0] => [img]http://www.pingbook.com/archive/200906241245819327.jpg[/img] ) [1] => Array ( [0] => http://www.pingbook.com/archive/200906241245819327.jpg ) )
มันจะมีพาธไฟล์ตัวสุดท้ายที่ถูกดึงออกมาเป็นแบบนี้ http://www.pingbook.com/archive/200906241245819327.jpg ผมจะไปเอามันมาใส่ที่ตัวแปร $path,$image ได้อย่างไร ต้องสร้างอะไรเพิ่มเพื่อจะไปดึงมันลงมาเพื่อให้มันแสดงเป็นรูปที่ $showimg ประมาณนี้ครับ // แสดง $path = $image; $showimg = "<img src='$path' width='' height='' />"; echo $showimg;
echo "<br><hr><br>";
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: c0untry-m@n ที่ 04 สิงหาคม 2012, 20:00:45
แบบนี้ไหมครับ <? $message = "ลีจีอา Lee Ji Ah ดาราเกาหลี[img]http://www.pingbook.com/archive/200906241245819327.jpg[/img]"; $wstart = "[img]"; $wend = "[/img]"; $pstart = strpos($message,$wstart,0); $pend = strpos($message,$wend,$pstart); $img = str_replace($wstart,"",substr($message,$pstart,($pend-$pstart))); $image = "<img src=$img />"; echo $image; ?>
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 04 สิงหาคม 2012, 20:45:34
แบบนี้ก็ใช้ได้ครับ แล้วถ้ามันมีหลายๆ img จะให้มันเลือกเอาภาพแรกภาพเดียวจะทำไงครับ [img ]1.jpg [/img ] [img ]2.jpg [/img ] [img ]3.jpg [/img ]
ขอบคุณมากครับท่าน
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: beg ที่ 04 สิงหาคม 2012, 21:30:19
$img เป็นอาร์เรย์สองมิติ ต้องเขียนโค้ดแบบนี้ครับ $img[ลำดับภาพ][1] ถ้าจะแสดงภาพแรกก็จะเป็น $img[0][1] (ตำแหน่งแรกในอาร์เรย์จะเริ่มจาก 0,1,2,3,4 ส่วนตัวเลข 1 ช่องหลัง ไม่ต้องเปลี่ยนครับ) // แสดงภาพแรก $path = $img[0][1]; $showimg = "<img src='$path' width='' height='' />"; echo $showimg;
echo "<br><hr><br>";
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 04 สิงหาคม 2012, 22:22:20
$img เป็นอาร์เรย์สองมิติ ต้องเขียนโค้ดแบบนี้ครับ $img[ลำดับภาพ][1] ถ้าจะแสดงภาพแรกก็จะเป็น $img[0][1] (ตำแหน่งแรกในอาร์เรย์จะเริ่มจาก 0,1,2,3,4 ส่วนตัวเลข 1 ช่องหลัง ไม่ต้องเปลี่ยนครับ) // แสดงภาพแรก $path = $img[0][1]; $showimg = "<img src='$path' width='' height='' />"; echo $showimg;
echo "<br><hr><br>";
ภาพมันไม่แสดงนะครับ แบบนี้ผมทำมาแล้ว $img[0][1] ภาพมันไม่ออกเลยงง มาถามให้แน่ใจอีกครั้ง ขอบคุณมากครับ
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: c0untry-m@n ที่ 04 สิงหาคม 2012, 23:06:51
แบบนี้ก็ได้ครับ <? $message = "ลีจีอา Lee Ji Ah ดาราเกาหลี[img]http://www.pingbook.com/archive/200906241245819327.jpg[/img]ksha;hark[img]http://www.thaiseoboard.com/avatarstorage/xavatar_59490.png.pagespeed.ic.XeO7ovgsVl.png[/img]";
preg_match_all('~\[img\]([^\[]+)\[\/img\]~',$message,$img);
foreach($img[1] as $image){ $path = $image; $showimg = "<img src='$path' />"; echo $showimg;
echo "<br><hr><br>"; } ?>
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 05 สิงหาคม 2012, 00:02:17
สุดยอดครับ มีกี่รูปมาหมดเลย จริงๆต้องการแค่รูปแรกรูปเดียว เดียวผมรองนั่งงม ให้เหลือรูปเดียวดู
ขอบคุณมากมายครับพี่
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 05 สิงหาคม 2012, 00:26:09
เหลือรูปเดียวแล้วครับ แต่เป็นรูปสุดท้ายที่ได้มา (ไปงมหาวิธีเอารูปแรกต่อ) <? $message = "ลีจีอา Lee Ji Ah ดาราเกาหลี<br>[img]http://www.pingbook.com/archive/200906241245819327.jpg[/img]ksha;hark[img]http://www.thaiseoboard.com/avatarstorage/xavatar_59490.png.pagespeed.ic.XeO7ovgsVl.png[/img]aaa[img]http://i.kapook.com/ninn/n19-0111/200111_LiJiAh_01.jpg[/img] Lee Ji Ah ดาราเกาหลี<br> Ah[img]http://www.globalfashionreport.com/inline/fashion/th/94e0b6c1fb1668956f534988e6ef37eb.jpg[/img] Lee Ji Ah<br>http://58.64.30.98/upload/imagesource/1189093858002.jpg<br>[img]http://58.64.30.98/upload/imagesource/1189093858002.jpg[/img] ";
preg_match_all('~\[img\]([^\[]+)\[\/img\]~',$message,$img);
foreach($img [1] as $image){ $path = $image; } $showimg = "<img src='$path' />"; echo $showimg;
echo "<br><hr><br>";
?>
หัวข้อ: Re: จะใช้ตัวแปรให้ภาพแสดงได้อย่างไร preg_match_all
เริ่มหัวข้อโดย: pungplai ที่ 05 สิงหาคม 2012, 03:14:39
ได้แล้วครับ เอาภาพแรกเพียงภาพเดียว ใช้ krsort(); เรียงจากมากไปหาน้อย กลับกันซ่ะเลย <? $message = "ลีจีอา Lee Ji Ah ดาราเกาหลี<br>[img]http://www.pingbook.com/archive/200906241245819327.jpg[/img]ksha;hark[img]http://www.thaiseoboard.com/avatarstorage/xavatar_59490.png.pagespeed.ic.XeO7ovgsVl.png[/img]aaa[img]http://i.kapook.com/ninn/n19-0111/200111_LiJiAh_01.jpg[/img] Lee Ji Ah ดาราเกาหลี<br> Ah[img]http://www.globalfashionreport.com/inline/fashion/th/94e0b6c1fb1668956f534988e6ef37eb.jpg[/img] Lee Ji Ah<br>http://58.64.30.98/upload/imagesource/1189093858002.jpg<br>[img]http://58.64.30.98/upload/imagesource/1189093858002.jpg[/img] ";
preg_match_all('~\[img\]([^\[]+)\[\/img\]~',$message,$img);
krsort($img [1]); foreach($img [1] as $image){ $path = $image;
} $showimg = "<img src='$path' />"; echo $showimg;
echo "<br><hr><br>"; ?>
|