今天試著用 Laravel Curl 套件去抓取客戶端的 API Json 資料,結果發現抓到的資料竟然都是空的,可是明明下載回來的檔案很正常啊? Why! Why! Why! 滿頭黑人問號!
結果發現兩個問題:
- 檔案裡面竟然有換行符號。(問題出在原始程式碼檔案裏面結構如下: 一個程式頁面用了兩個 <?php 導致空白行也被 echo 出去)
<?php include('載入檔案'); ?>
<?php
程式碼1;
資料;
echo json_encode(資料);
?>
- 原始php程式的檔案格式竟然是 utf8 BOM。
JSON 的解碼資料必須是 UTF8 若是其他的格式都將無法解碼。將檔案格式改回 UTF8 後就可以正確解出資料。