發表文章

目前顯示的是有「PHP」標籤的文章

PHP對Google 試算表做CRUD

圖片
Google Sheets有API可以做查詢與編輯,近日架設了LINE BOT對話機器人,就利用了Google試算表來做簡單的資料庫,這裡記錄一下 CRUD 的練習程式碼。 那麼要準備什麼東西呢? 有Google帳號,建立一份Google試算表,並且開啟分享(取得試算表ID) 啟用 Google Sheets API  並取得credentials.json檔案(本文就直接用API範例的Quickstart來修改,至於怎麼啟用API網路上有很多精美圖文教學可參考) PHP運作環境 準備好 Google Client Library  (如果你的環境沒有 Composer ,可以先在你的電腦安裝 XAMPP 與 Composer ,取得 Google Client Library 後,做Quickstart範例看看,沒問題再一起上傳到你的空間) 快點開始吧!其實在 Google Sheets API 裡面的Quickstart範例已經有程式碼與步驟了,複製貼上,下個指令取得授權就可以玩。(vendor資料夾與credentials.json檔案的位置要留意一下) 但是!有個重點:這程式碼(如下圖紅框處),有一行程式會造成我們只能讀取而不能刪改資料,請把"_READONLY"刪除掉,我們才能做後續的新增、修改、刪除資料。 如果有把"_READONLY"這幾個字刪除,取得授權時,可以看到多了些讀取以外權限! 而授權後,在quickstart.php資料夾內會多了一個token.json檔案,請保留別刪除了噢!我們來建立一支PHP做個資料查詢試試吧!可以正常運作就準備把整個資料夾打包丟上你的Server囉! 先附上資料查詢的程式碼: <?php require __DIR__ . '/vendor/autoload.php'; $client = new Google_Client(); $client->setAuthConfig('credentials.json'); $client->setAccessType('offline'); $service = new Google_Service_Sheets($c...

[PHP]LineBot應聲蟲

圖片
一隻很簡單的Line對話機器人,來試試吧! 程式碼: <?php //你的LINE Messaging API Channel access token $channelAccessToken = 'Your Channel access token'; $bodyMsg = file_get_contents('php://input'); $obj = json_decode($bodyMsg, true); //接收事件與回復 foreach ($obj['events'] as &$event) { //判斷發生的事件 switch($event['type']){ case 'follow': //加好友時 $message = '您好!我是學人精!'; break; case 'message'; //有訊息時 $message = $event['message']; $message = strtolower($message['text']); //回傳接收到的文字,或是改成要回復的文字 break; } //發送訊息 $PostData = [ 'replyToken' => $event['replyToken'], 'messages' => [ [ 'type' => 'text', 'text' => $message ] ] ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://api.line.me/v2/bot/...

PHP陣列排序

做個PHP的練習筆記:排序及搜尋一組陣列內的號碼... <?php //降冪排序 $arr=array(12,45,89,3,24,55,223,76,22,11,89,2,4,5,28,112,20,434); for ($i = max($arr); $i >= 0; $i--){     if (in_array($i, $arr))         echo $i." "; } ?> <?php //升冪排序 $arr=array(12,45,89,3,24,55,223,76,22,11,89,2,4,5,28,112,20,434); for ($i = 0; $i <= max($arr); $i++){     if (in_array($i, $arr)){     echo $i." ";     } } ?> <?php $num=20; //要找的數字 $arr=array(12,45,89,3,24,55,223,76,22,11,89,2,4,5,28,112,20,434); if(in_array($num,$arr)){     for ($i = 0; $i <= count($arr); $i++){         if($arr[$i]==$num){         echo "第{$i}元素是{$arr[$i]}";         return false;     } } }else{     echo"找不到:{$num}"; } ?>