file_get_contents ออกมาแล้วเราจะสามารถหาข้อความที่เราต้องการหายังไงดีครับ

เริ่มโดย absolutex, 23 กันยายน 2008, 19:01:59

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

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

absolutex

จาที่อ่านๆดูเห็นบอกว่า curl_init() จะเร็วกว่าใช่ป่าวครับ แล้วจะอกมาเป็น html

ที่นี้ผมอยากหา ส่วนส่วนนึงของเวปที่ ผม get มาอะครับ

อย่าง

$url = $websiteown;
$url = file_get_contents($url);
echo $url; 

$url = $websiteown;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);

echo $response;


สมมุติว่า

ใน html มี

.
.
.

<div id="content">
<img src="http://..........jpg">
</div>
.
.
.

ผมต้องการข้อมูลที่อยู่หลัง <div id="content">  และ ก่อน </div> เท่านั้นครับ

ต้องเขียนยังไงครับผม
ขอบพระคุณครับ 

liveadsense

   if (strstr($response,"img src="http://") ) {
   $lines = explode("http://",$response);
   echo "$lines[0]<br>";
   }

lines = ..........jpg

มั้งครับจำไม่ค่อยได้เหมือนกัน

เตือนตัวเอง ว่าเก่งได้ แต่อย่ากร่าง
รู้รับฟัง ไม่ใช่พล่ามเป็นน้ำไหล
อย่าหลงตน ให้คนอื่นเหนื่อยหน่ายใจ
เจอบันได ถ้าขึ้นได้ ต้องลงเป็น

absolutex

คือได้แล้วครับ

preg_match("/<div id=\"content\">(.*)<\/div>/", $url , $matches);  
echo "Test : ".$matches[1];  

:-*

absolutex


iPhoenix

ผมทำแบบนี้อะ

หลังจากได้ html มาแล้ว อยู่ในตัวแปรชื่อ $content

$content = preg_replace("|(\s)+|", ' ', $content);
preg_match('#<div.id="content">(.*?)</div>#', $content, $return);
echo $return[1] ;


tinnoi

[direct=https://trainee.naruthee.com]หาที่ฝึกงาน[/direct] ,
[direct=http://www.piyamitrgroup.com]รับรื้อถอน[/direct] ,
[direct=https://fastvisa2024.weebly.com/]รับทำวีซ่า[/direct] ,
[direct=https://business.10thai.com]10thai[/direct]

absolutex

มีวิธีที่

file_get_contents($url);
แล้ว
$content = preg_replace("|(\s)+|", ' ', $content);
preg_match('#<div.id="content">(.*?)</div>#', $content, $return);
echo $return[1] ;

แล้ว

ใช้เวลาน้อยที่สุดรึป่าวครับ  ???

ลองแล้วรู้สึกว่าถ้า get หลายๆรอบ จะออกมาช้าเลยครับ

ColdMoney

ที่ช้าเพราะ file_get_contents มากกว่ามั้งครับ ให้ใช้ curl แทนครับ เร็วกว่านะ  ;)
[direct=https://www.jumnong.com]รับจำนอง[/direct] [direct=https://burapasup.com]รับซื้อบ้าน[/direct] [direct=https://kadsan.com]สินค้าราคาถูก[/direct] [direct=https://checkcheap.com]เปรียบเทียบราคา[/direct]


EThaiZone

อ้างถึงจาก: digitalex ใน 24 กันยายน 2008, 21:14:42
ลองเขียนเปิด socket เองดูครับได้ข่าวว่าเร็วกว่า curl

ยืนยันว่าเร็ว แต่ต้องเขียนให้่ดี อย่าลืม close connection ด้วย

วิธีดีสุด ใช้ sniffer แล้วก็อบ header ขาออกมาใช้ทั้งดุ้นเลย ง่ายดี ^^

แต่ทั้งหมดสำคัญอยู่ที่โฮสนะครับ

ปล. ถ้าทำเว็บด้วยไอ้นี้ มันเข้าข่าย web scarping นะครับ ระวังโฮสเตะ