0

我是 php 新手,

我想从 url 获取参数,

我的请求标头是application/json

chrome的网络显示请求URL

test/rdp3.php/%5Bobject%20Object%5D  

事实上它是

test/rdp3.php/99

PHP代码

<?php
  $value = json_decode(file_get_contents('php://input'));
  echo $value->sessionName;
?>

如何获取 url 参数(99)?

我搜索了它,但我找不到任何关于它的信息,

请帮忙!多谢 !

4

2 回答 2

1

$_SERVER['PATH_INFO']将返回/99。然后,您可以使用trim()substr()删除/.

'PATH_INFO'
    Contains any client-provided pathname information trailing the actual script 
    filename but preceding the query string, if available. For instance, if the 
    current script was accessed via the URL 
    http://www.example.com/php/path_info.php/some/stuff?foo=bar, then 
    $_SERVER['PATH_INFO'] would contain /some/stuff.

来自http://php.net/manual/en/reserved.variables.server.php

更新

根据您的评论,我对您到底在尝试什么感到有些困惑。如果您返回 [object Object],则意味着您尝试将 JavaScript 对象作为 URI 的一部分发送。我建议对任何 json 数据使用 HTTP 请求正文。如果您打算使用 URI 来唯一标识您发送到服务器的数据(如“99”),那么上面的代码将帮助您解析 URI。如果您想知道如何解析 HTTP 请求负载,那么下面的代码会有所帮助。

从命令行使用 json 的示例 POST 请求:

curl -i -X POST -d '{"a": 1, "b": "abc"}' http://localhost:8080/test/rdp3.php/99 

使用 PHP 解析 json 对象:

<?php
$data = json_decode(file_get_contents("php://input"));
var_dump($data); // $data is of type stdClass so it can be treated like an object.
var_dump($data->a); // => 1
var_dump($data->b); // => abcd
于 2013-09-17T03:13:22.000 回答
0

URLtest/rdp3.php/99格式不正确。

您想要做的是在 url 的末尾设置一个键和一个值。test/rdp3.php/99也会如此test/rdp3.php?key=value。表示查询字符串的?开头。然后每个键/值对由 . 分隔&

因此,您可以拥有如下所示的网址:

test/rdp3.php?key=value&id=99

然后在你的 PHP 代码中获取key你的值:

$variableName = $_GET['key'];

要获得你的价值,id你会这样做:

$variableName2 = $_GET['id'];
于 2013-09-17T03:10:10.013 回答