PHP中的Content-Type标头

时间:2017-03-02 11:00:53

标签: php json wordpress

我正在创建一个wordpress插件,它可以获取一些数据然后回显json_encode

这是通过创建一个函数并从短代码调用它来完成的。

短信代码正在从wordpress页面注入空白页面模板。

我正在尝试在shortcode插件的函数中将头设置为application / json,但是这是忽略的,内容类型仍然设置为HTML / TEXT。

我以这种方式设置标题:

header('Content-Type: application/json'); 

整个插件看起来像这样:

<?php function abc_func(){

    header('content-type: application/json; charset=utf-8');

    $abc_array = array(
                    'abc' => $abc
    );

    echo json_encode($abc_array);

}

add_shortcode('abc_shortcode', 'abc_func');

?>

3 个答案:

答案 0 :(得分:0)

如果在设置标题之前(或在插件代码之前),可能会导致某些数据被发送到输出,请确保在此之前设置标题。

答案 1 :(得分:0)

  

检查php.ini文件中的output_buffering设置。如果不是   设置为&#34;关闭&#34; PHP会自动为您执行输出缓冲。   将它设置为off并在header命令之前回显一些东西,然后你   应该看到&#34;经典错误&#34;。

Content-type not working in PHP

答案 2 :(得分:-1)

试试这个。

header('content-type: application/json; charset=utf-8');

以后是否有任何地方更改了内容类型?

编辑2017-03-02

Content-type not working in PHP

  

检查php.ini文件中的output_buffering设置。如果不是   设置为“off”比PHP自动为您执行输出缓冲。   将它设置为off并在header命令之前回显一些东西,然后你   应该看到“经典错误”。