Site icon บริษัท โค๊ดบี จำกัด

cURL คืออะไร วิธีดึงรายละเอียดและทำระบบแชร์เว็บไซต์

curl-คืออะไร

curl-คืออะไร

<h2>cURL คืออะไร วิธีดึงรายละเอียดและทำระบบแชร์เว็บไซต์<&sol;h2>&NewLine;<p><&sol;br><br &sol;>&NewLine;<strong>cURL คืออะไร วิธีดึงรายละเอียดและทำระบบแชร์เว็บไซต์<&sol;strong><&sol;p>&NewLine;<p>cURL ย่อมาจากคำว่า Client for URLs เป็นคำสั่ง command line ที่ถูกเพิ่มเข้ามาในภาษา PHP ตั้งแต่เวอร์ชั่น 4&period;0&period;2 เป็นต้นมา จุดประสงค์หลักของคำสั่ง cURL ที่ถูกเพิ่มเข้ามาในภาษา PHP ก็เพื่อให้นักพัฒนาสามารถเขียนคำสั่งเพื่อติดต่อสื่อสารกับ Server &lpar; Window&comma; Linux &rpar; และ Prototal &lpar; http&comma;https&comma;ftp &rpar; ที่มีความแตกต่างกัน <&excl;--more--><&sol;p>&NewLine;<p><&sol;br><&sol;p>&NewLine;<h4>ขั้นตอนการทำงานหลักของคำสั่ง cURL<&sol;h4>&NewLine;<ul>&NewLine;<li>1&period; เริ่มต้นสร้าง curl resource ด้วยฟังก์ชัน curl&lowbar;init&lpar;&rpar;<&sol;li>&NewLine;<li>2&period; กำหนด option ให้ curl resource ด้วยฟังก์ชัน curl&lowbar;setopt&lpar;&rpar; ตัวอย่างเช่น&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;ch &equals; curl&lowbar;init&lpar;&rpar;&semi; &NewLine;curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;HEADER&comma; 0&rpar;&semi; &sol;&sol; curl resource ตามด้วยชื่อ option และ value &NewLine;curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;RETURNTRANSFER&comma; 1&rpar;&semi;<&sol;pre>&NewLine;<&sol;li>&NewLine;<li>3&period; สั่งเริ่มการทำงาน Execute curl resource ด้วยฟังก์ชัน curl&lowbar;exec&lpar;&rpar;<&sol;li>&NewLine;<li>4&period; หลังจากได้ข้อมูลแล้วสั่งปิดการทำงานด้วยฟังก์ชัน curl&lowbar;close&lpar;&rpar;<&sol;li>&NewLine;<&sol;ul>&NewLine;<p>โดยหลัก ๆ แล้วขั้นตอนการทำงานก็จะมีเท่านี้ จะเยอะหน่อยคือการกำหนด option ให้กับ curl resource ก่อนทำการ execute ซึ่งก็ขึ้นอยู่กับเงื่อนไขในการใช้งานของแต่ละงาน ข้อมูลจะถูกรีเทิร์นกลับมาหลังจากคำสั่ง execute<br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;<h4>ตัวอย่างการใช้ cURL ในการดึงข้อมูลเว็บไซต์ทำระบบแชร์<&sol;h4>&NewLine;<p>เราสามารถใช้คำสั่ง cURL ในการดึงข้อมูลของเว็บไซต์เช่น title&comma;description&comma;image เราจะได้ข้อมูลคล้าย ๆ กับที่เวลาเราแชร์ลิงค์ใน facebook timeline โดยสามารถเขียนคำสั่งได้ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " > &NewLine;function file&lowbar;get&lowbar;contents&lowbar;curl&lpar;&dollar;url&rpar; &sol;&sol; ฟังก์ชั่นเริ่มต้น กำหนดค่า และสั่งทำงาน curl &NewLine;&lbrace; &NewLine; &dollar;ch &equals; curl&lowbar;init&lpar;&rpar;&semi; &NewLine; &NewLine; curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;HEADER&comma; 0&rpar;&semi; &NewLine; curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;RETURNTRANSFER&comma; 1&rpar;&semi; &NewLine; curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;URL&comma; &dollar;url&rpar;&semi; &NewLine; curl&lowbar;setopt&lpar;&dollar;ch&comma; CURLOPT&lowbar;FOLLOWLOCATION&comma; 0&rpar;&semi; &NewLine; &NewLine; &dollar;data &equals; curl&lowbar;exec&lpar;&dollar;ch&rpar;&semi; &NewLine; curl&lowbar;close&lpar;&dollar;ch&rpar;&semi; &NewLine; &NewLine; return &dollar;data&semi; &NewLine;&rcub; &NewLine; &NewLine;&dollar;html &equals; file&lowbar;get&lowbar;contents&lowbar;curl&lpar;"https&colon;&sol;&sol;www&period;domain&period;com"&rpar;&semi; &sol;&sol;โหลดข้อมูล html จากเว็บไซต์ทั่วไป &NewLine;&dollar;doc &equals; new DOMDocument&lpar;&rpar;&semi; &NewLine;&commat;&dollar;doc-&gt&semi;loadHTML&lpar;&dollar;html&rpar;&semi; &sol;&sol; ข้อมูลที่ได้จะเป็น html ใช้คำสั่ง loadHTML เพื่อแปลงให้อยู่ในรูปแบบ xml &NewLine; &NewLine;<&sol;pre>&NewLine;<p>จากโค๊ดด้านบนเราได้ใช้คำสั่ง cURL เพื่อดึงหน้าเว็บไซต์ทั้งหน้ามาแสดง ถ้าเราลอง echo &dollar;html จะเห็นว่าไฟล์นี้ได้ดึงหน้าเว็บไซต์มาเหมือน copy มาเลย แต่จุดประสงค์ของเราคือต้องการเอาข้อมูลบางส่วนบนหน้าเว็บไซต์เท่านั้น จึงจัดการกับข้อมูลที่เป็น html ให้อยู่ในรูปแบบไฟล์เอกสาร xml เพื่อจะเข้าถึงข้อมูล tag ต่าง ๆ ในหน้าเว็บไซต์ได้ง่ายขึ้น<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;หากไม่มีอะไรผิดพลาดและเราสามารถโหลดข้อมูลจากเว็บไซต์นั้น ๆ ได้ เราก็จะสามารถเข้าถึง tag ต่าง ๆ ในเว็บไซต์นั้นได้ผ่านคำสั่งของคลาส DOMDocument ได้ โดยสามารถเขียนคำสั่งได้ดังนี้<&sol;p>&NewLine;<pre class&equals;"lang&colon;default decode&colon;true " >&dollar;nodes &equals; &dollar;doc-&gt&semi;getElementsByTagName&lpar;'title'&rpar;&semi; &NewLine;&dollar;title &equals; &dollar;nodes-&gt&semi;item&lpar;0&rpar;-&gt&semi;nodeValue&semi; &NewLine;&dollar;metas &equals; &dollar;doc-&gt&semi;getElementsByTagName&lpar;'meta'&rpar;&semi; &NewLine; &NewLine;for &lpar;&dollar;i &equals; 0&semi; &dollar;i &lt&semi; &dollar;metas-&gt&semi;length&semi; &dollar;i&plus;&plus;&rpar; &NewLine;&lbrace; &NewLine; &dollar;meta &equals; &dollar;metas-&gt&semi;item&lpar;&dollar;i&rpar;&semi; &NewLine; if&lpar;&dollar;meta-&gt&semi;getAttribute&lpar;'name'&rpar; &equals;&equals; 'description'&rpar; &NewLine; &dollar;description &equals; &dollar;meta-&gt&semi;getAttribute&lpar;'content'&rpar;&semi; &NewLine; if&lpar;&dollar;meta-&gt&semi;getAttribute&lpar;'name'&rpar; &equals;&equals; 'keywords'&rpar; &NewLine; &dollar;keywords &equals; &dollar;meta-&gt&semi;getAttribute&lpar;'content'&rpar;&semi; &NewLine;&rcub; &NewLine; &NewLine;echo "Title&colon; &dollar;title"&period; '&lt&semi;br&sol;&gt&semi;&lt&semi;br&sol;&gt&semi;'&semi; &NewLine;echo "Description&colon; &dollar;description"&period; '&lt&semi;br&sol;&gt&semi;&lt&semi;br&sol;&gt&semi;'&semi; &NewLine;echo "Keywords&colon; &dollar;keywords"&semi;<&sol;pre>&NewLine;<p>หลังจากได้ข้อมูลทั้ง title&comma; description&comma; image&comma; keyword เราก็สามารถนำไปทำระบบแชร์ได้ไม่ต่างจากการแชร์ลิงค์ในไทม์ไลน์ของเฟสบุ้คแล้วครับ<br &sol;>&NewLine;<&sol;br><br &sol;>&NewLine;สามารถดูข้อมูล option ทั้งหมดของคำสั่ง cURL ได้ที่เว็บไซต์ <a href&equals;"http&colon;&sol;&sol;php&period;net&sol;manual&sol;en&sol;ref&period;curl&period;php" target&equals;"&lowbar;blank">http&colon;&sol;&sol;php&period;net&sol;manual&sol;en&sol;ref&period;curl&period;php<&sol;a><br &sol;>&NewLine;<&sol;br><&sol;p>&NewLine;

Exit mobile version