สอบถามเรื่องการใช้งาน DOM

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่องการใช้งาน DOM

สอบถามเรื่องการใช้งาน DOM
สอบถามเรื่องการเขียน DOM หน่อยครับ
 
ผมเขียนโค๊ดเพื่อจะดึงข้อมูลจากเว็บมาแบบนี้
 
$DOM = new DOMDocument('1.0','utf-8');
$DOM->loadHTML('<meta http-equiv="content-type" content="text/html; charset=utf-8">'.$str);
 
$items = $DOM->getElementsByTagName('div');
 
for ($i = 0; $i < $items->length; $i++){
   
echo $items->item($i)->nodeValue."<br/>";   
      
}
 
****ข้อมูลใน $str****
 
<div class="pin-item">
        <div class="pin-title">
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 1</a> 
</div>
</div>
 
<div class="pin-item">
        <div class="pin-title">
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 2</a> 
</div>
</div>
 
<div class="pin-item">
        <div class="pin-title">
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 3</a> 
</div>
</div>
 
<div class="pin-item">
        <div class="pin-title">
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 4</a> 
</div>
</div>
 
<div class="pin-item">
        <div class="pin-title">
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 5</a> 
</div>
</div>
 
<div class="post-item  ">
    <div class="post-item-type">
<span class="icon-mini-posttype icon-mini-posttype-que grayscale"></span>
</div>
    <div class="post-item-title">
<a target="_blank" href="/topic/32620943">ทดสอบโพสที่ 1</a>
</div>
    <div class="post-item-by">
<span class="by-name">สมาชิกหมายเลข 1061414</span> - <span class="timestamp"> <abbr class="timeago" data-utime="09/24/2014 09:58:31" title="24 กันยายน 2557 เวลา  09:58:31 น."></abbr> </span>
    </div>
    <div class="post-item-footer">
<div class="post-item-taglist">
<div class="tag-item "> <a class="tag-title" href="/tag/น้ำมันเครื่อง" target="_blank"> 
<span data-tag="น้ำมันเครื่อง"> <em>น้ำมันเครื่อง</em> </span> </a> 
</div>
<div class="tag-item "> 
<a class="tag-title" href="/tag/รถยนต์" target="_blank"> <span data-tag="รถยนต์"> <em>รถยนต์</em> </span> </a> 
</div>
</div>
     </div>
</div>
 
*************************
แบบนี้อะครับ
ผลออกมาคือ มันออกข้อมูลทุกอย่างมาเลย
 
ทดสอบ ปักหมุด 1
ทดสอบ ปักหมุด 2
ทดสอบ ปักหมุด 3
ทดสอบ ปักหมุด 4
ทดสอบ ปักหมุด 5
ทดสอบโพสที่ 1
 
ถ้าผมจะกรองโดยแยกตามคลาส
class="pin-item"
แล้วเก็บ a href ไว้ใช้งานด้วย
ต้องทำยังไงอ่าครับ 
ลองมาหลายวิธีละ งง มาก 
รบกวนด้วยครับ


ืnickson 24-09-2014 11:09:55

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลองดูตัวนี้เป้นแนวทาง

แนะนำ PHP Simple HTML DOM Parser สำหรับ ดึงข้อมูล เฉพาะส่วนที่ต้องการ 


ninenik 24-09-2014
 ความคิดเห็นที่ 2
พอมีไฟล์ ให้ลองไหมครับ
ผมลองทำตามแล้วผลไม่ออก

ไฟล์ที่ลองดึงข้อมูลได้ตั้งแต่ <?php เลยอ่าครับ
ผมมือใหม่จริงๆ

ดึงข้อมูลจาก url นี้ ครับ http://dev-activity.com/DOM/testurl.htm


ืnickson 24-09-2014 11:43
 ความคิดเห็นที่ 3
ในตัวอย่าง วิธีใช้ คอ่นข้างละเอียด ลองอ่านดีๆ

ลองเอาตัวอย่างไปดูเป็นแนวทาง

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Din</title>
</head>
<body>
<?php
include("simple_html_dom.php");
// Create a DOM object from a URL
$html = file_get_html('http://dev-activity.com/DOM/testurl.htm');
$ret = $html->find('div.pin-title a');
foreach($ret as $v){
		echo $v."<br>";
}
?>
</body>
</html>


ninenik 24-09-2014
 ความคิดเห็นที่ 4
ขอรบกวนอีกหน่อยได้ไหมครับ
ผมไม่ผ่านตรงนี้
$ret = $html->find('div.pin-title a');  

http://dev-activity.com/DOM/test2.php



ืnickson 24-09-2014 14:31
 ความคิดเห็นที่ 5
http://dev-activity.com/DOM/test3.htm

อันนี้ก๊อปไปไม่ทำอะไรเลย เซพเป็น htm ครับ


ืnickson 24-09-2014 14:38
 ความคิดเห็นที่ 6
โหลดไฟล์นี้มาหรือยัง simple_html_dom.php

ไปโหลดไฟล์นี้มาใช้ include ตามลิ้งค์บทความ
ลองวางโค้ดที่ทดสอบมาดู ไฟล์ test2.php


ninenik 24-09-2014
 ความคิดเห็นที่ 7
แง่ว ไฟล์ php ต้องนามสกุล php
ถึงจะทำงาน 


ninenik 24-09-2014
 ความคิดเห็นที่ 8
http://dev-activity.com/DOM/test2.php

ตัวนี้เป็น php ครับ 
มันไม่เวิค ><
ผมเลยลองแบบ html อีกตัว


http://dev-activity.com/DOM/dom.JPG

อันนี้ไฟล์ในเซิฟครับ


ืnickson 24-09-2014 14:46
 ความคิดเห็นที่ 9
หรือว่าเป็น กับ server ไม่รองรับหรือป่ว ไม่แน่ใจ
ถ้าก็อบโค้ดจาก ความเห็นที่ 3 ไปไว้ในไฟล์ชื่อ test2.php 
แล้ว ทดสอบรัน ถ้าไม่แสดงข้อมูล
คิดว่าน่าจะเป็นกับ server ไม่แน่ใจว่าต้องไปแก้ตรงไหน
ลองทำตามดู



ninenik 24-09-2014
 ความคิดเห็นที่ 10
ถ้าไม่มีอะไรผิดพลาด โค้ดตามตัวอย่างความเห็นที่ 3 ผลที่ได้จะเป็น
ตาม ลิ้งค์นี้

<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 1</a><br>
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 2</a><br>
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 3</a><br>
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 4</a><br>
<a href="/topic/32602481" target="_blank">ทดสอบ ปักหมุด 5</a><br>


https://www.ninenik.com/demo/dom/dom.php


ninenik 24-09-2014
1 2 3 Next






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ