ให้ลองหลับตาแล้วจินตนการให้เห็นหน้าเพจที่มีฟอร์มอยู่ฟอร์มหนึ่ง ลงมือป้อนข้อมูลลงไปในฟอร์ม กดปุ่ม submit
เบื้องหลัง เบราเซอร์จะเก็บรวบรวมข้อมูลภายในฟอร์ม สร้างขึ้นมาเป็นสตริงชุดหนึ่ง แล้วส่งไปให้กับไฟล์ที่ระบุไว้ใน target ของฟอร์ม (มันบ่ได้ส่งฟอร์มไปทั้งฟอร์มอย่างที่เราเห็นดอกนะ ส่งไปเฉพาะข้อมูลที่ถูกป้อนเท่านั้น) เมื่อไฟล์นั้นได้รับข้อมูลก็จะทำการประมวลผลตามคำสั่งที่อยู่ภายในไฟล์ ได้ผลลัพธ์อะไรเซิฟเวอร์ก็รวบรวมเป็นสตริงชุดหนึ่ง แล้วส่งกลับมาให้เบราเซอร์เจ้าของ เบราเซอร์ได้รับสตริงแล้วก็ประมวลผลแสดงออกมาเป็นหน้าเพจ
ถ้าเราต้องการทำระบบโพสต์ข้อมูลอัตโนมัติ คำตอบคือ CURL ไม่ใช่แต่เฉพาะโพสต์ฟอร์มแต่รวมไปถึงร้องขอหน้าเพจจากเซิฟเวอร์ ถ้าท่านงงๆ ให้จินตนาการง่ายๆว่าเป็นการอ่านไฟล์ข้ามเว็บไซต์ก็แล้วกัน
CURL เป็นไลบรารี่ที่อนุญาติให้เราเขียนว่าจะส่งตัวแปรอะไรไปให้ไฟล์ไหนที่เว็บไซ ต์ไหน response ที่ได้กลับมาคือผลลัพธ์ที่ถูกประมวลผลเรียบร้อยแล้ว
เราสามารถเขียนโค้ดให้โปรแกรมเราล้อกอินอัตโนมัติไปยังเว็บไซต์ไหนก็ได้ เพื่อเอาข้อมูลบางอย่าง บางคราเราก็ใช้ CURL ส่งข้อมูลเพื่อร้องขอข้อมูลจากเว็บไซต์ที่เขามีหน้าเว็บให้ป้อนข้อมูล (อัตโนมัติ ไม่ต้องใช้คนคอยป้อนข้อมูล)
ผมขออ้างอิงไปที่บทความ CURL หรือ คือคำตอบสุดท้ายสำหรับ http client application บน php เวลาผมเขียน CURL ไม่ถูกก็ได้อาศัยเว็บพี่เขา เว็บแห่งนี้เป็นเสมือนอาจารย์ที่สอน PHP เชิงลึก แก่ผมเลยทีเดียว ขอขอบคุณด้วยใจจริงครับ
สมาชิกที่ผ่านมาอ่านเจอบทความนี้ ถ้าอยากได้ความรู้แจ่มๆ แวะไปเลยครับ www.phpzealots.com รับรองไม่ผิดหวัง
โค้ดด้านล่างผมก้อปปี้มาจากเว็บพี่เขาครับ ( เพื่อให้บทความต่อเนื่อง ต้องขออนุญาติพี่ phpzelot.com ไว้ ณ ตรงนี้ด้วยนะครับ ) วิธีเขียน CURL
<?php $urlWithoutProtocol = "www.example.com:80/someServices"; $request = ""; $isRequestHeader = false; $exHeaderInfoArr = array(); $exHeaderInfoArr[] = "Content-type: text/xml"; $exHeaderInfoArr[] = "Authorization: "."Basic ".base64_encode("authen_user:authen_pwd"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $urlWithoutProtocol); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); curl_setopt($ch, CURLOPT_HEADER, (($isRequestHeader) ? 1 : 0)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if( is_array($exHeaderInfo) && !empty($exHeaderInfo) ) { curl_setopt($ch, CURLOPT_HTTPHEADER, $exHeaderInfo); } $response = curl_exec($ch); curl_close($ch); echo $response; ?> |
<?php $request = "format=csv&by=member&rs=hour&rk=productivity&rb=".$month_first_date."&re=".$cur_date = date('Y-m-d'); $urlWithoutProtocol = "www.rescuetime.com/anapi/data/?".$request ; $isRequestHeader = FALSE; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $urlWithoutProtocol); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $productivity = curl_exec($ch); curl_close($ch); ?> |
<?php $request = "format=csv&by=member&rs=hour&rk=productivity&rb=".$month_first_date."&re=".$cur_date = date('Y-m-d'); $urlWithoutProtocol = "https://www.rescuetime.com/anapi/data/?".$request ; $isRequestHeader = FALSE; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $urlWithoutProtocol); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $productivity = curl_exec($ch); curl_close($ch); ?> |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); |
0 comments:
Post a Comment