作者flirmnave (焰離雨星)
看板PHP
標題[請益] 在xampp下JSON會沒有回傳值
時間Thu Nov 19 23:30:36 2015
不好意思 不曉得如何在標題描述這個情況
在文章裡我會盡量寫清楚一點的
---
一開始我是利用 xampp 來建制環境
然後用 PHP 到 csv檔 撈資料傳 JSON 給網頁
大致的 PHP程式 如下
<?php
$key = strtolower($_GET["key"]);
if ($key == "") return;
//Do Something
$json_obj["List"] = $json_arr;
$json_str = json_encode($json_obj);
echo "$json_str";
?>
而為了測試 則直接先用網址的方法送 key 給 PHP 取資料
h ttp://127.0.0.1/search.php?key=keyword
但發現載入後整個頁面是空白的 似乎 PHP 完全沒有執行
用 Chrome 開 開發工具 去看好像也沒有錯誤訊息
不曉得會不會是我看的方法錯誤?
本來有想過會不會是撈的資料裡有中文的關係
但是把撈中文的地方去掉還是一樣的狀況
---
在網路上找了很久 不知道該用什麼關鍵字去找
後來換了個環境
發現同一支 PHP 在 Appserv 還有 Microsoft WebMatrix
是可以正常執行的...
直接用上面網址傳值進去的方式也正常
(正常執行指的是從 網頁端 傳值到 PHP 再到撈回資料 完全沒有問題
HTML PHP CSV完全沒有變動)
想問問各位有沒有碰過這個情況呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.42.1.252
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1447947038.A.188.html
1F:推 lvlightvivi: 看看$_GET有沒有值? 11/19 23:35
$_GET應該是有值的 像那段網址 ?key=keyword
這邊的 keyword 就會讓 $_GET["key"] 取到值
再以 key 下去做後續處理
謝謝你
2F:推 zx4109: 會不會是json功能沒安裝 11/20 00:16
JSON 不是一種格式嗎? 還要另外裝 extension 支援?
我會找找看有沒有相關資料的 謝謝你
3F:→ zx4109: 抱歉,我是指phpjson support 有無開啟,或是PHP版本太舊 11/20 00:56
是我會錯意了 Xampp 我是用官網最新版 照他的說明 PHP 應該是 5.6.14
應該不會是PHP版本太舊
---
至於 PHP json support 找不到哪裡可以查
但我有用一個小PHP試試看
<?php
$json_obj = array ("a"=>1,"b"=>2,"c"=>3,"d"=>4,"e"=>5);
$json_str = json_encode($json_obj);
echo "$json_str";
?>
直接執行以後 網頁顯示
{"a":1,"b":2,"c":3,"d":4,"e":5}
這表示是有成功的吧?
---
那篇文章我也有看到 但他是要抓取 mysql 資料出問題的
我是直接將資料放在 csv 去讀 也有試著先把抓中文的地方去掉
應該不會遇到同樣的問題
※ 編輯: flirmnave (114.42.1.252), 11/20/2015 01:18:31
感謝 zx4109 提到那篇 重看一遍得到靈感
將資料來源 csv 改成 UTF8格式 就可以了
然而此時顯示的中文會是 \u6797 這樣的
照著那篇 將
$json_str = json_encode($json_obj);
換成
$json_str = json_encode($json_obj,JSON_UNESCAPED_UNICODE);
這樣可以正常顯示中文了
---
所以是編碼的問題
不曉得為什麼 Appserv 和 Microsoft WebMatrix 沒有這個問題...
感謝熱心回答的兩位!!
※ 編輯: flirmnave (114.42.1.252), 11/20/2015 01:27:15
5F:→ flirmnave: 不曉得有沒有不需改來源資料編碼的方式? 11/20 01:29
6F:→ flirmnave: 改csv成UTF8後 直接開啟反而在EXCEL裡顯示亂碼了... 11/20 01:33
7F:→ bibo9901: 那是因為excel爛. 另開工作表然後從[資料]→[從文字檔] 11/20 02:27
8F:→ bibo9901: 匯入才能正確顯示unicode 11/20 02:27
9F:→ flirmnave: 暫時也只能這樣了 感謝樓上 11/20 08:19
10F:推 yongb: 頭痛的編碼阿.... 11/20 19:35