วิธีการทำให้ภาษา php เข้าไปเก็บข้อมูลและแสดงข้อมูลเฉพาะที่เราต้องการ

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jamepiyawat
PHP Super Member
PHP Super Member
โพสต์: 449
ลงทะเบียนเมื่อ: 21/05/2019 10:45 am

วิธีการทำให้ภาษา php เข้าไปเก็บข้อมูลและแสดงข้อมูลเฉพาะที่เราต้องการ

โพสต์โดย jamepiyawat » 22/06/2019 12:13 pm

พอดีว่าผมได้รับโปรเจ็กเล็ก ๆ มาหนึ่งอย่างนั้นก็คือการที่ให้ผู้ใช้กรอก URL ของ YouTube ลงไปแล้าทางโปรแกรมก็จะสามารถค้นหา keyword ออกมาได้ด้วยภาษา php โดยในบทความนี้ผมก็จะหยิบยกโค้ดบ่างส่วนเอามาแชร์ความรู้กันจะเป็นอย่างไรก็ลองไปอ่านกันเลย
คำสั่งที่ใช้งานหลัก ๆ ก็คือ file_get_contents() , preg_match() , json_decode()

โค้ด: เลือกทั้งหมด

<?php
$link_content = file_get_contents('https://www.youtube.com/watch?v=39S__ck2VSI');
preg_match('/ytplayer.config \=(.*);ytplayer.load/', $link_content, $matchs);
$result = json_decode($matchs[1], true);
$player_response = json_decode($result['args']['player_response'], true);
// $player_response['videoDetails'] เป็น array จะเก็บรายละเอียดของวีดีโอ title description keywords
// ดึงค่า keywords ออกมาเป็น array
$keywords = $player_response['videoDetails']['keywords'];
print_r($keywords);


ผลลัพธ์ที่ได้

โค้ด: เลือกทั้งหมด

Array ( [0] => SY51 [1] => NACC [2] => SY51xNACC [3] => ดีกว่านี้ [4] => ปปช )



เรามาอธิบายคำสั่งแต่ละบรรทัดกันนะครับ ในที่นี้ผมจะขอเข้าไปเก็บ soutce จาก youtube คลิปหนึ่งให้ไปเก็บ keyword ข้างในนะครับ โดยการใช้คำสั่ง file_get_contents จากนั้นเราก็ลองเข้าไป view page source ดูว่า keyword ของเราเก็บไ้ว้ที่ไหน

Selection_730.png
Selection_730.png (7.29 KiB) เปิดดู 105 ครั้ง


แล้วลองไล่ดูว่า keyword ถูกเก็บไว้ในไหน


Selection_731.png


จะเห็นได้ว่ามันถูกเก็บไว้ใน ytplayer.config เราจึงต้องดึงข้อมูลข้างในนี้ออกมาให้หมดก่อนเมื่อเราดึงออกมาทั้งหมดแล้วเราก็ต้องเลือกเข้าไปเก็บข้อมูลข้างใน ytplayer.config ด้วยคำสั่ง preg_match

โค้ด: เลือกทั้งหมด

preg_match('/ytplayer.config \=(.*);ytplayer.load/', $link_content, $matchs);
$result = json_decode($matchs[1], true);

ส่วนคำสั่ง json_decode ก็จะใช้ในการจัดรูปแบบข้อมูล JSON ที่เป็นตัวแปรของ PHP ให้ออกมาเป็น String ถ้าเราลองให้แสดงข้อมูลออกมาด้วยคำส่ัง

โค้ด: เลือกทั้งหมด

print_r($result);

เราก็จะเห็นข้อมูลมากมายเพราะเรายังไม่ได้เลือกให้เข้าไปเก็บข้อมูลตรงส่วนไหนนั้นเองแต่ในส่วน keyword จำเป็นต้องเขาไปที่ args และ player_response ก่อนตามคำสั่ง

โค้ด: เลือกทั้งหมด

$player_response = json_decode($result['args']['player_response'], true);

ถ้าเราลองให้แสดงข้อมูลออกมาด้วยคำสั่ง

โค้ด: เลือกทั้งหมด

print_r($player_response);

เราจะเห็น keyword ได้ชัดขึ้นแล้วเราจะเห็นได้เลยว่าอยู่ใน videoDetails แล้วก็ keywords เลย

Selection_733.png


เราจึงใช้คำสั่งเพื่อเลือกให้แสดง keywords เป็น array

โค้ด: เลือกทั้งหมด

$keywords = $player_response['videoDetails']['keywords'];

เท่านี้เราก็จะเป็นการแสดงค่าเฉพาะ keyword แล้ว

เป็นอย่างไรบ้างครับบทความนี้อธิบายเข้าใจหรือทางผู้เขียนบทความนี้ก็หวังว่าจะเป็นความรู้ให้กับผู้ที่เข้ามาสนใจอ่านบทความนี้นะครับคงจะไม่ยากเกินไปนะครับสำหรับบทความนี้หวังว่าจะได้รับความรู้ความสามารถสำหรับภาษา php กันบ้างไม่น้อยก็น้อยมากนัครับและทางผู้เขียนบทความหวังเป็นอย่างยิ่งว่าท่านที่ได้รับความรู้นี้ไปแล้วจะนำไปส่งต่อผู้ที่สนใจภาษา php เหมือนกับพวกเรานะครับ สวัดดีครับ

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 6 และ บุคคลทั่วไป 0 ท่าน