HTML+JavaScript+Canvas+PHP

James Lee
4 min readApr 17, 2020

--

先前利用了六個篇幅講述如何使用PHP下載政府csv格式的開放資料,後來我就每天在晚上十點以後去看每日的庫存狀況,接著就成了一種常態。除了查看之外,我又好奇這資料到底意義在哪?所以順手將資料copy到iPhone的Numbers裡,又利用Numbers的圖表功能製作了每日趨勢圖。

因此,我也有「資料」,我決定將這資料存成csv格式,檔案就是mask.csv。這次我將這檔案存在我的GCP上,同時我還申請了IBM Cloud並且開通PHP container。之所以這樣做的原因有:1) 看我的PHP及JavaScript的相容性,2) 雲端服務的相容性(雖然這個版本有關)。

在GCP上建立了一個folder "stock",folder內又建一個sub folder "data"存放檔案mask.csv。

在IBM Cloud 的PHP container是一種Serverless的服務,免費的,但是要維持服務運作,每14天內至少要更新一次。檔案先在local內設計再上傳更新,所以我也建立了一個folder “stock”,folder內又建一個sub folder “data”存放檔案mask.csv。

因為我沒有安裝PHP emulator,所以我會先在GCP上編輯程式,然後在下載到我的PC,再重新上傳到IBM Cloud。

回到程式。

我還是要用PHP,因為IBM Cloud 的關係,所以檔案名稱是index.php

沿用先前的PHP開頭碼。

利用先前學的PHP能力,這次因為讀的是自己的檔案,所以要用fopen(),一樣用fgetcsv()轉換成陣列。

開始進入javascript 與canvas,做顏色及變數設定。當然還是一樣用json_encode()將PHP的資料傳給javascript。

因為這次要做趨勢圖,所以要用moveTo(), lineTo()畫線,每一顏色的線條要先用beginPath()開頭,然後stroke()做上色。

上線、上刻度…

最後就是把每個縣市的趨勢線條畫上。

最後藉機做一個實驗,將用戶的地理座標標示出來。

完成。

先看GCP上的(參考連結http://35.188.48.191/mask/stock/)

再來看IBM Cloud上的(參考連結https://jmslee.mybluemix.net/mask/stock/index.php

由於我在GCP上未做SSL認證,所以無法使用https://呼叫我的網頁,因此無法正常使用geolocation。這部分你可以開啟Chrome Developer tool來觀看提示。

以上又是一個快速的檔案資料演練。

--

--

James Lee
James Lee

Written by James Lee

I like to self study computer program language and share any fun electrical technology, my Youtube channel https://youtube.com/@jmslee1123

No responses yet