作者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