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

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

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

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« เมื่อ: 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>";
บันทึกการเข้า

c0untry-m@n
ก๊วนเสียว
*

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

กระทู้: 261



ดูรายละเอียด
« ตอบ #1 เมื่อ: 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;
?>
บันทึกการเข้า
pungplai
ก๊วนเสียว
*

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 04 สิงหาคม 2012, 20:45:34 »

แบบนี้ก็ใช้ได้ครับ แล้วถ้ามันมีหลายๆ img จะให้มันเลือกเอาภาพแรกภาพเดียวจะทำไงครับ
[img ]1.jpg [/img ]
[img ]2.jpg [/img ]
[img ]3.jpg [/img ]

ขอบคุณมากครับท่าน


บันทึกการเข้า

beg
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,445



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 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>";

« แก้ไขครั้งสุดท้าย: 04 สิงหาคม 2012, 21:30:48 โดย beg » บันทึกการเข้า

pungplai
ก๊วนเสียว
*

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 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] ภาพมันไม่ออกเลยงง มาถามให้แน่ใจอีกครั้ง
ขอบคุณมากครับ
บันทึกการเข้า

c0untry-m@n
ก๊วนเสียว
*

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

กระทู้: 261



ดูรายละเอียด
« ตอบ #5 เมื่อ: 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>";
}
?>
บันทึกการเข้า
pungplai
ก๊วนเสียว
*

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 05 สิงหาคม 2012, 00:02:17 »

สุดยอดครับ มีกี่รูปมาหมดเลย
จริงๆต้องการแค่รูปแรกรูปเดียว เดียวผมรองนั่งงม ให้เหลือรูปเดียวดู

ขอบคุณมากมายครับพี่
บันทึกการเข้า

pungplai
ก๊วนเสียว
*

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 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>";

?>
บันทึกการเข้า

pungplai
ก๊วนเสียว
*

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

กระทู้: 375



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 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>";

?>
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์