看板 PHP 關於我們 聯絡資訊
最近在嘗試透過php curl抓取docker remote api傳出的JSON顯示在自己的網頁上,但是遇 上一些問題 我是利用docker composer同時啟動兩個container,分別是nginx 1.23與php 7.4-fpm 第一個問題是 ip/containers/$containerID/logs?stdout=true 在抓nginx的log可以看到一些資訊,但是從php容器得到的卻是空字串 第二個問題是 ip/containers/$containerID/stats 直接丟瀏覽器網址欄是持續進行每秒更新一次的..呃..是叫streaming嗎? 利用跟前面取得log、容器列表等等同樣的curl處裡方式卻會直接得到一個空值字串,請問 這種要如何正常的解析呢? 另外就是有嘗試利用網路上的JSON parser先解析直接丟瀏覽器得到的JSON 資料,發現除了 最開始的第一筆資料外,後續更新的都會在"precpu_stats"中包含了前一次的percpu_usage ,而網路上的JSON parser會將這裡標記為語法錯誤 請問這種是不是用php json_decode()就會無法轉換成陣列? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.129.183 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/PHP/M.1659866880.A.F6B.html
zx4109: 有 sample code 嗎? 08/13 01:06
zx4109: 所以有兩個 API: log / stats ? 08/13 01:07
zx4109: 然後你的意思是在 PHP 取不到 nginx 的 access log 08/13 01:11
isolatorAY: 第一個問題解決了,只要URL後面加上detail=true就好 08/17 13:50
isolatorAY: 第二個問題的程式大致上是這樣 08/17 13:52
isolatorAY: $url=$ip."containers/$dockerID/stats"; 08/17 13:53
isolatorAY: $ch=curl_init(); 08/17 13:57
isolatorAY: curl_setopt()有四個參數,returntransfer=true 08/17 13:57
isolatorAY: timeout=50 08/17 13:57
isolatorAY: url=$url 08/17 13:57
isolatorAY: httpheader contenttype,accept都是application/json 08/17 13:57
isolatorAY: $output=curl_exec($ch) 08/17 13:58
isolatorAY: var_dump($output)得到bool(false) 08/17 13:58