php curl
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา php curl
php curl
อยากสอบถามค่ะ
เนื่องจากต้องดึงข้อมูลสินค้า curl จาก http://www.itcityonline.com/products?category=smartphone-tablet&subcategory=tablet มาแสดง
แต่ว่าข้อมูลเป็น tag และอยู่ในรูปแบบ json
เนื่องจากต้องดึงข้อมูลสินค้า curl จาก http://www.itcityonline.com/products?category=smartphone-tablet&subcategory=tablet มาแสดง
แต่ว่าข้อมูลเป็น tag และอยู่ในรูปแบบ json
function dlPage($url) {
$curl=curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_REFERER, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36');
$str = curl_exec($curl);
curl_close($curl);
$dom = str_get_html($str);
return $dom;
}
$product_area = $html->find('div.body-wrapper',0);
$product_l1 = $product_area->find('div.product-list-page',0);
$product_l2 = $product_l1->find('div.container',1);
$product_array = $product_l2->find('product-list',0);
foreach($product_array as $key => $item){
foreach($item as $value=> $val){
echo "<p>";
//echo "SKU : ".$value['attr'];
// // // echo $value;
echo "<br>";
echo "sub : ".$value;
echo "<br>";
echo "eee : ".$indy =$val;
}
}
ซึ่ง output ที่ได้ จะประมาณนี้ ซึ่งลอง decode แล้วไม่อ่านค่ะ
![]()
แต่ไม่ได้มาแค่ข้อมูลตัสนีเท่านั้นนะคะจะมีข้อมูลนี้มาด้วย
![]()
ต้องการ echo sku ของสินค้าออกมาเก็บไว้ในฐานข้อมูลค่ะ ไม่ทราบว่าพอมีวิธีมั้ยคะ
ซึ่ง output ที่ได้ จะประมาณนี้ ซึ่งลอง decode แล้วไม่อ่านค่ะ
แต่ไม่ได้มาแค่ข้อมูลตัสนีเท่านั้นนะคะจะมีข้อมูลนี้มาด้วย
ต้องการ echo sku ของสินค้าออกมาเก็บไว้ในฐานข้อมูลค่ะ ไม่ทราบว่าพอมีวิธีมั้ยคะ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
ตรวจสอบดูว่า สามารถ json_encode ได้ไหม แล้วแปลงเป็น array ถ้าแปลงทั้งหมดไม่ได้ ให้แยกเป็นสวน
แล้วแปลงเฉพาะส่วน
หรือไม่ก็ลองวิธ๊นี้แทน
แล้วแปลงเฉพาะส่วน
หรือไม่ก็ลองวิธ๊นี้แทน
แนะนำ PHP Simple HTML DOM Parser สำหรับ ดึงข้อมูล เฉพาะส่วนที่ต้องการ http://niik.in/388
https://www.ninenik.com/content.php?arti_id=388 via @ninenik
แต่สำคัญจะอยู่ที่ข้อมูลที่เราไปดึง เราควรจะได้รับอนุญาต หรือขออนุญาตเว็บที่เราไปดึงให้ถูกต้องก่อน
แต่สำคัญจะอยู่ที่ข้อมูลที่เราไปดึง เราควรจะได้รับอนุญาต หรือขออนุญาตเว็บที่เราไปดึงให้ถูกต้องก่อน

ความคิดเห็นที่
2
จากที่ได้ output จาก curl ลองใช้ regular expression ช่วยน่าจะดีกว่านะครับ
เอา string มาจับ match



1 | $str = curl_exec( $curl ); |
เอา string มาจับ match
1 | preg_match_all( '/sku":"(.*?)","title":"(.*?)","/' , $str , $match ); |



ขอบคุณทุกการสนับสนุน
![]()