สอบถามการแจ้งเตือนผ่านไลน์ Fatal error: Call to undefined function curl_init() in D:\AppServ\www\pizza\line2.php on line 11
Fatal error: Call to undefined function curl_init() in D:\AppServ\www\pizza\line2.php on line 11
ตอนนี้ใช้ Code เขียนการแจ้งเตือนผ่านไลน์ กลับ Error แก้ตามที่ค้นหาข้อมูลแล้วก็ไม่ได้คะ เหมือนหา function curl_init ไม่เจอ ต้องทำอย่างไรคะ
Code (PHP)
<?php
$chOne = curl_init();
curl_setopt( $chOne, CURLOPT_URL, "https://notify-api.line.me/api/notify");
// SSL USE
curl_setopt( $chOne, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt( $chOne, CURLOPT_SSL_VERIFYPEER, 0);
//POST
curl_setopt( $chOne, CURLOPT_POST, 1);
// Message
curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=สวัสดี");
//ถ้าต้องการใส่รุป ให้ใส่ 2 parameter imageThumbnail และimageFullsize
//curl_setopt( $chOne, CURLOPT_POSTFIELDS, "message=hi&imageThumbnail=http://www.wisadev.com/wp-content/uploads/2016/08/cropped-wisadevLogo.png&imageFullsize=http://www.wisadev.com/wp-content/uploads/2016/08/cropped-wisadevLogo.png");
// follow redirects
curl_setopt( $chOne, CURLOPT_FOLLOWLOCATION, 1);
//ADD header array
$headers = array( 'Content-type: application/x-www-form-urlencoded', 'Authorization: Bearer xxxxx', );
curl_setopt($chOne, CURLOPT_HTTPHEADER, $headers);
//RETURN
curl_setopt( $chOne, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec( $chOne );
//Check error
if(curl_error($chOne)) { echo 'error:' . curl_error($chOne); }
else { $result_ = json_decode($result, true);
echo "status : ".$result_['status']; echo "message : ". $result_['message']; }
//Close connect
curl_close( $chOne ); ?>
แก้ตามที่ค้นหาข้อมูลจากเน็ตแล้วก็ไม่หายคะ
ทำการเปิดแก้ไขไฟล์ C:\WINDOWS\php.ini
ค้นหา และตัด ; ด้านหน้า
;extension=php_curl.dll
แก้ไขเป็น
extension=php_curl.dll
นำ DLL อีกสองตัว คือ
-libeay32.dll
-ssleay32.dll
ที่อยู่ใน dir:\AppServ\php5(หรือ 4)
เอาไปวางใน C:\WINDOWS\system32
และทำการ Restart Apache หรือ Restart Appserv Server
เพียงเท่านี้ก็จะใช้ได้แล้วครับTag : PHP
Date :
2017-04-11 15:43:22
By :
pornwilaip
View :
4401
Reply :
6
ตอบความคิดเห็นที่ : 1 เขียนโดย : mr.win เมื่อวันที่ 2017-04-11 21:15:26
รายละเอียดของการตอบ ::
มีไฟล์อยู่คะ แก้ปัญหาไม่ได้เลยลองหาโค๊ดใหม่ติดเหมือนเดิมคะ ;)
ปล.โค๊ดทั้งสองแบบส่งผ่านเมื่ออยู่ในโน๊ตบุ๊ค พอลงเซิจเวอร์จริงๆกลับใช้ไม่ได้คะ
Code (PHP)
<?php
define('LINE_API',"https://notify-api.line.me/api/notify");
define('LINE_TOKEN','xxx');
function notify_message($message){
$queryData = array('message' => $message);
$queryData = http_build_query($queryData,'','&');
$headerOptions = array(
'http'=>array(
'method'=>'POST',
'header'=> "Content-Type: application/x-www-form-urlencoded\r\n"
."Authorization: Bearer ".LINE_TOKEN."\r\n"
."Content-Length: ".strlen($queryData)."\r\n",
'content' => $queryData
),
'ssl'=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$context = stream_context_create($headerOptions);
$result = file_get_contents(LINE_API,FALSE,$context);
$res = json_decode($result);
return $res;
}
$res = notify_message('hello');
var_dump($res);
?>
Warning: file_get_contents(https://notify-api.line.me/api/notify) [function.file-get-contents]: failed to open stream: Invalid argument in D:\AppServ\www\pizza\line.php on line 34
NULL
Date :
2017-04-12 10:51:07
By :
pornwilaip
curl ถ้าใช้ไม่ได้แม้ติดตั้งถูกแล้ว ให้ลองเปลี่ยนรุ่น php ใหม่ บางทีมันมีปัญหาตรงรุ่นย่อยที่เขา compile/build มาไม่ค่อยดีก็มี ผมก็เคยเจอบ้าง เปลี่ยนรุ่นเอาอันอื่นมาลงแทนก็กลับใช้ได้ก็มี
และแนะนำให้ใช้โปรแกรมจำลอง server อย่างอื่นที่ไม่ใช่ appserv (ไม่ทราบ appserv รุ่นใหม่ได้แก้ข้อบกพร่องต่างๆที่เคยมีหรือยังนะ) อย่างเช่นลองใช้ xampp, uwamp, หรืออันที่ผมทำแจก (ไม่รวม mysql, mariaDB).
file_get_contents มันไม่ได้ทำมาเพื่อเน้นใช้เรียก URL ให้ลองคลิกอ่านดู เขาบอกว่าถ้าไม่ได้เปิดใช้ fopen_wrappers ก็ใช้ไม่ได้ ไหนจะยังมีบั๊กกับ SSL กับ IIS ของ MS อีก. ให้ใช้ CURL ดีแล้วเพราะโฮสท์ส่วนใหญ่ใช้ได้ แค่ไปปรับบน local ให้ทำงานได้ก็จะได้ทำต่อไปได้.
ประวัติการแก้ไข 2017-04-12 12:04:26 2017-04-12 12:04:50
Date :
2017-04-12 12:01:12
By :
mr.v
Date :
2017-04-13 14:29:33
By :
mr.win
Load balance : Server 00