作者codemonkey (程式猿)
看板PHP
標題[請益] 如何抓出有 . 的GET傳入變數?
時間Wed Nov 2 13:28:16 2011
最近呼叫的Web API比較特別(應該是我少見多怪),
用GET方法回傳的變數名稱是有點的".",像是
user.id
user.email
user.nickname
...
所以直接用 $_GET['user_id']抓不到東西...
請問這種命名方式的變數要怎麼讀到啊? 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.71.13
1F:推 chrisQQ:你可以先 var_dump($_GET); 我在我的機器上測試有 . 的沒 11/02 13:40
2F:→ chrisQQ:問題,. 會自己轉成 _ 11/02 13:40
3F:→ chrisQQ:test_get.php?user.id=test&user.nick=hello 11/02 13:41
4F:→ chrisQQ:array(2) { ["user_id"]=> string(4) "test" ["user_nick" 11/02 13:41
5F:→ chrisQQ:]=> string(5) "hello" } 11/02 13:41
原來有這招啊,感恩,可以看到一堆亂七八糟的東西了 (還沒做處理)。
不過,如果非要去解析那個 . 有辦法嗎?
剛才有查到類似的教學
http://stackoverflow.com/questions/1861990/how-to-set-url-parameters-in-an-array
(
http://preview.tinyurl.com/3enuw8h)
不過有看沒有懂,似乎是PHP5的東西?
6F:→ chrisQQ:你堅持要是 $_GET['user.id'] 而不是 $_GET['user_id']嗎 11/02 14:25
7F:→ chrisQQ:看你提供的範例是 openid,你是要做 openid 嗎?不考慮直 11/02 14:27
8F:→ chrisQQ:接找 openid 套件處理這段@@? 11/02 14:27
也不是堅持啦,因為用var_dump()會印出全部的解析結果,加@也沒用,
而且也滿好奇如何處理有『 . 』字元的GET變數~
另外我正在嘗試串接各家的OpenID-Like Web API,
算是正在重新打造輪子吧
※ 編輯: codemonkey 來自: 59.124.71.13 (11/02 15:14)
9F:→ chrisQQ:其實我有點不懂解析 . 的 get 變數是什麼意思@@, 11/02 16:09
10F:→ chrisQQ:你可以舉個例子,從 input 到你理想的 output 是怎樣嗎? 11/02 16:10
因為var_dump()會把array內容也印出來,目前尋找其他解決方式
(來解決GET傳入訊息包含『.』符號、$_GET無法正確讀取的問題)
※ 編輯: codemonkey 來自: 59.124.71.13 (11/02 16:51)
11F:→ chrisQQ:我的意思是你可以用 var_dump 把 get 拿出來看看,你可以 11/02 17:05
12F:→ chrisQQ:自己在處理 get 裡面的東西,你喜歡的話就 foreach get 11/02 17:06
13F:→ chrisQQ:str_replace('_', '.', $input) 把 _ 換回 . 11/02 17:06
14F:→ chrisQQ:我在看了一次,你的意思是,你有可能同時有 user_id, 11/02 17:08
15F:→ chrisQQ:user.id 這兩個 get 的變數傳入嘛? 11/02 17:08
感謝你的提示,問題解決了...原來我要做的是
str_replace('_', '.', $_GET);
(原來可以$_GET是字串陣列,我一直以為是function)
表達能力有待加強...
※ 編輯: codemonkey 來自: 59.124.71.13 (11/02 17:30)
16F:→ chrisQQ:XD 11/02 17:33