0

目前我正在使用项目源代码中的 boonex dolphin 项目,许多 php 文件都以开头<?而不是<?php 我发现在许多语句中它使用了另一个语句,例如<?= $start ?>

<td valign="top" align="justify"><?= $str ?></td>


我认为当您将 JSON 对象发布到 PHP 时,您可以通过php://input读取它们。php://input包含原始 POST 数据,因此是一个需要 JSON 编码的字符串:

// Read all
$json = file_get_contents('php://input');
// String -> array (note that removing `true` will make it object)
$obj = json_decode($json, true);
// Print it
var_dump($obj);

小演示(test.php)

<?php
var_dump($_POST);

// Read all
$json = file_get_contents('php://input');
// String -> array (note that removing `true` will make it object)
$obj = json_decode($json, true);
// Print it
var_dump($obj);
?>

输出使用curl调用它:

$ curl -X POST -d '{"test": "value"}' localhost/test.php
array(0) {
}
array(1) {
  ["test"]=>
  string(5) "value"
}

最后,如果您希望能够同时传递 JSON 数据和 URL 参数,请使用以下内容:

function buildRequest(){

    // Get Data
    $json = file_get_contents('php://input');

    // Form the request from the imput
    if ($json!=""){
        $_REQUEST = array_merge_recursive($_REQUEST,json_decode($json, true));
    }
}

buildRequest();
var_dump($_REQUEST);

使用 URL 和 data 参数调用上面的结果:

curl -X POST -d '{"test": "value"}' localhost/test.php?param=value2
array(2) {
  ["param"]=>
  string(6) "value2"
  ["test"]=>
  string(5) "value"
}

让我知道以上内容是否适合您。

4

1 回答 1

0
"<?" : Short tags (you have to allow it from your server php.ini)
"<?php" : this represents php starting point.
"<?=" : it is just to show the output
example :

<?php $test= 'abc';?>
<?=$test?>
its output is abc
于 2016-08-27T09:05:51.020 回答