【问题标题】:Turning PHP function into variable for JSON将 PHP 函数转换为 JSON 的变量
【发布时间】:2018-01-04 22:34:30
【问题描述】:

我希望能够将 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);
?>

function(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 报告“NULL”。

将 PHP 函数转换为可用于在 cURL/JSON 中发布票证的变量的正确方法是什么?

【问题讨论】:

    标签: php json function variables curl


    【解决方案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。

    【讨论】:

    • 非常感谢!这解决了“NULL”问题。但是,现在 PHP 给出错误“PHP Parse error: syntax error, unexpected '$out' (T_VARIABLE) in /home/vnettacdev/public_html/api/postticketnote.php on line 20”
    • 那将是 CURLOPT_POSTFIELDS => "{\r\n\"TicketId\": 141,\r\n\"Note\": ".$out."}", 行。我是否以错误的方式附加 $out?
    • 不要尝试通过连接字符串来创建 JSON。创建一个关联数组,然后调用json_encode()
    • CURLOPT_POSTFIELDS =&gt; json_encode(array('TicketId' =&gt; 141, 'Note' =&gt; $out))
    • 谢谢你,巴尔玛!我会牢记这一课!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多