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

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

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: สอบถาม เกี่ยวกับ คำสั่ง eregi_replace หน่อยครับ  (อ่าน 1681 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« เมื่อ: 11 มีนาคม 2009, 02:59:14 »

เนื่องจากผมใช้คำสั่ง file_get_contents ดึงหน้า page มา 1 หน้า

แล้วจะทำการตัดเอารูป จากหน้านั้น มาเก้บไว้ในตัวแปร

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

ผมก็เลยเขียน

$pic = eregi_replace(".*<img src=\"","",$cpage);
$pic = eregi_replace("\" border.*","",$pic);

และทดสอบ มันผ่านคับ แต่ปัญหาคือ มันไปดึงรูปล่างสุดมาให้ซะงั้น ผมจะต้องเขียนยังไง เพื่อให้มันดึงรูปแรกสุดมาเก็บอ่ะคัรบ


ขอบคุณครับ
บันทึกการเข้า
Kobsoft
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,574



ดูรายละเอียด
« ตอบ #1 เมื่อ: 11 มีนาคม 2009, 03:47:13 »

 Embarrassed   อ่านไฟล์เสร็จแล้วก็จะมีสถานะคล้ายๆ การ fopen ไฟล์ txt ธรรมดาน่ะคับ โครงสร้างของสิ่งที่ต้องการดึงถ้ามันมีหลาย object มันจะกลายเป็น Array โดยถ้าเราไปดึงถึกๆ มา แบบนั้น...แน่นอน ตามหลักระบบแล้วมันจะเอา object สุดท้ายมาให้ แต่เราก็สามารถระบุได้ง่ายๆ ในการดักจับ Array ตัวใดตัวหนึ่งมา

ยกตัวอย่างโค้ดบางส่วน เช่นผมจะเขียนดักจับแท็ก Title ของเว็บเป้าหมาย

โค๊ด:
if (eregi("<title>(.*)</title>", $WebsiteCode, $out)){
  $nTitle = $out[1];
}

echo "$nTitle";

ฝีมือยังไม่ถึงขั้นนะเราเนี่ย...
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 11 มีนาคม 2009, 04:08:46 »

โค๊ด:
preg_match_all('#<img[^>]+src=["|\']([^"|\']+)["|\'][^>]+>#i', $cpage, $match);

$first_img_src = $match[1][0];

ตามนี้ เขียนสด  Tongue
บันทึกการเข้า

BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #3 เมื่อ: 11 มีนาคม 2009, 09:24:07 »

โค๊ด:
preg_match_all('#<img[^>]+src=["|\']([^"|\']+)["|\'][^>]+>#i', $cpage, $match);

$first_img_src = $match[1][0];

ตามนี้ เขียนสด  Tongue

ขอบคุณมากครับ เด๊ยวไปลองก่อน
บันทึกการเข้า
antie
ก๊วนเสียว
*

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

กระทู้: 225



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 11 มีนาคม 2009, 09:41:34 »

เทพ PHP กันทั้งน้านเลยแหะ  Shocked
บันทึกการเข้า

BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #5 เมื่อ: 11 มีนาคม 2009, 09:51:33 »

ลืมตอบกระทู้นี้ สคริปคุณโจ้ work มากเลยครับ Cheesy
บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #6 เมื่อ: 11 มีนาคม 2009, 12:25:08 »

โจ้ยังเจ๋งเหมือนเดิมเลย คุงเต้ก็ยังขยันเหมือนเดิมเลย แหะๆ
บันทึกการเข้า

g-ji
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 3,254



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 11 มีนาคม 2009, 12:28:43 »

อยากเขียน php เป็นบ้างจัง  Cry

จะเริ่มศึกษา php จริงจัง (ตั้งแต่ 1ใหม่เลยเพราะพื้นไม่แน่น) หรือ หันไปเล่น Ruby เลยดีมั้ยหว่า  Huh? เริ่มจาก 1 เหมือนกัน แต่เริ่มใหม่หมดเลย
บันทึกการเข้า

BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #8 เมื่อ: 11 มีนาคม 2009, 15:03:20 »

โจ้ยังเจ๋งเหมือนเดิมเลย คุงเต้ก็ยังขยันเหมือนเดิมเลย แหะๆ

ตอน php มีปัญหา เปิดหา msn คุณบอล คนแรกเลย แต่ offline  Embarrassed

ไม่งั้นโดนผมกวน ทั้งคืน Cheesy
บันทึกการเข้า
bluezip
ก๊วนเสียว
*

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

กระทู้: 294



ดูรายละเอียด
« ตอบ #9 เมื่อ: 11 มีนาคม 2009, 15:11:22 »

มีคนตอบให้หมดแล้ว
« แก้ไขครั้งสุดท้าย: 11 มีนาคม 2009, 15:15:00 โดย bluezip » บันทึกการเข้า

BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #10 เมื่อ: 11 มีนาคม 2009, 22:13:23 »

สคริปคุณ โจ้ ok นะ แต่ พอเป็นตัวนั้นแล้ว มันจับภาพได้เยอะมาก จนบางทีมันเพี้ยนๆ ไปเลยล่ะ เพราะว่า บางทีมันไปดึงรูปอะไรมาแทน ก็ไม่รู้ T_T


ประมาณว่า รูปที่ต้องการถ้าเล่นกับสคริปคุณโจ้ มันจะอยู่ที่ [1][3] แต่ hi5บางคน ตำแหน่ง [1][3] ก็ไม่ใช่ รูปที่ผมต้องการ

แต่ถ้าเป็นตัว

$pic = eregi_replace(".*<img src=\"","",$cpage);
$pic = eregi_replace("\" border.*","",$pic);


รู้สึกว่าจะได้แน่ๆ เพียงแต่ ยังเขียนให้มันดึง ตำแหน่งแรกสุดไม่ได้สักที T_T
บันทึกการเข้า
BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #11 เมื่อ: 11 มีนาคม 2009, 22:42:52 »

ในที่สุดก็ผ่านจนได้ ผ่านได้ไงก็ไม่รู้ เอาสคริปเก่าๆ ที่คุณไอซ์ช่วย มา โม จนได้

http://friend.yorkza.com/

ช่วยทดสอบ และ เสนอแนะหน่อยครับบ ว่าต้องมี หรือ แก้ไข อะไรบ้าง จะหนีไปทำรูปเล่มล่ะ
บันทึกการเข้า
ball6847
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #12 เมื่อ: 11 มีนาคม 2009, 23:12:26 »

ลองแบบนี้ดูจิคับ เจาะจงลงไปอีกนิด

โค๊ด:
<?php

$url 
"";

$page getURL($url);
preg_match("#<img src=\"(http://photos[\d]+\.hi5\.com/[^\"]+)\"#" $page $match);
echo 
$match[1];

//=====================================

function getURL($url) {
$ch curl_init($url);
curl_setopt($ch CURLOPT_RETURNTRANSFER 1);
curl_setopt($ch CURLOPT_FOLLOWLOCATION 1);
$page curl_exec($ch);
curl_close($ch);
return $page;
}

?>

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

BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #13 เมื่อ: 12 มีนาคม 2009, 00:28:24 »

อ่า ได้สคริปเพิ่มอีก 1 ขออนุญาติ เก็บ นะครับ Cheesy
บันทึกการเข้า
BosnoS
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 8,168



ดูรายละเอียด
« ตอบ #14 เมื่อ: 12 มีนาคม 2009, 00:31:09 »

ลองแบบนี้ดูจิคับ เจาะจงลงไปอีกนิด

โค๊ด:
<?php

$url 
"";

$page getURL($url);
preg_match("#<img src=\"(http://photos[\d]+\.hi5\.com/[^\"]+)\"#" $page $match);
echo 
$match[1];

//=====================================

function getURL($url) {
$ch curl_init($url);
curl_setopt($ch CURLOPT_RETURNTRANSFER 1);
curl_setopt($ch CURLOPT_FOLLOWLOCATION 1);
$page curl_exec($ch);
curl_close($ch);
return $page;
}

?>



Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in /home/bosnos/domains/yorkza.com/public_html/friend/curl.php on line 47

สงสัย host ผมไม่ได้เปิดระบบไว้ให้หรือเปล่า
บันทึกการเข้า
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

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

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #15 เมื่อ: 12 มีนาคม 2009, 00:48:29 »

Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir
ผมก็เคยเจอ จนผมเขียนคลาสของผม แก้ปัญหาไว้ใช้เองเลย (ไม่ขอแจก เก็บไว้ใช้เอง)

จากโค้ดเดิม ผมลองแก้ ฟังค์ชั่นเป็นแบบนี้
โค๊ด:
function getURL($url) {
$ch = curl_init($url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER , 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$res = curl_exec($ch);
curl_close($ch);
if(preg_match("#Location\s*:\s*([^\r\n]+)\r\n#i", $res, $match)) {
$page = getURL($match[1]);
} else {
list($header, $page) = preg_split ( "#\r?\n\r?\n#", $res, 2, PREG_SPLIT_NO_EMPTY );
}
return $page;
}
« แก้ไขครั้งสุดท้าย: 12 มีนาคม 2009, 00:57:23 โดย EThaiZone » บันทึกการเข้า

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