将PHP函数转换为JSON的变量

时间:2018-01-04 22:34:31

标签: php json function variables curl

我希望能够将PHP函数转换为可以在JSON字符串中使用的变量。

我的PHP功能如此:

<?php
function output(){
echo "<pre>";
foreach($_POST as $key => $value){
if(strpos($key,'HIDEME') != true){
    echo "<span style='color: black;'><strong>",$key,"</strong>
</span>&nbsp;&nbsp;<span style='color: #2555A4;'>",$value,"</span><br/>";
}
}
echo "</pre>";

}
$output = output();
echo json_encode($output);
?>

函数(output();是我希望变成$ output的东西。 此函数的目的是回显提交表单的键和值。 我试图转动输出();进入$ output,然后使用json_encode希望在以下内容中使用它...

我的JSON的PHP cURL是这样的:

<?php
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => "BLAHBLAHBLAH.COM",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\r\n\"TicketId\": 141,\r\n\"Note\":".json_encode($output).",\r\n\}",
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer ".$access_token,
"Cache-Control: no-cache",
"Content-Type: application/json",
"Postman-Token: 577b3128-0836-26e8-c6ff-9619f952f820"
),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
?>

cURL的目的是使用函数output();。

发布支持票据

我的问题是,虽然表单键/值仅与函数一起回显,但将函数转换为$ output报告&#34; NULL&#34;。

将PHP函数转换为变量的正确方法是什么,然后我可以使用它来发布cURL / JSON中的票证?

1 个答案:

答案 0 :(得分:1)

output()函数中,您打印字符串而不是返回它,这可能会帮助您

function output() {
    $out = "<pre>";
    foreach($_POST as $key => $value) {
        if(strpos($key, 'HIDEME') != true) {
            $out .= "<span style='color: black;'><strong>".$key."</strong>"
                  . "</span>&nbsp;&nbsp;<span style='color: #2555A4;'>".$value."</span><br/>";
        }
    }
    $out .= "</pre>";
    return $out;
}

使用.=,您可以将内容附加到字符串

$a = 'foo';  // 'foo'
$a .= 'bar'; // 'foobar'

另外:说“将一个php函数变成一个json变量”在这里有点误导。实际上你将php函数的返回值编码为json。