@FILE_GET_CONTENTS和wp_Remote_GET

时间:2013-07-31 作者:gshft

$content = json_decode(@file_get_contents($query));此字符串中的@file\\u get\\u内容的正确替换是什么?如果我只是将@file\\u get\\u内容替换为@wp\\u remote\\u get,则会出现错误

警告:json\\u decode()要求参数1为字符串,即示例中给出的数组。php在线88

1 个回复
SO网友:s_ha_dum

检查文档。file_get_contents()wp_remote_get() 不等同。file_get_contents() 返回字符串。wp_remote_get() 返回数组或WP_Error 对象你需要看看wp_remote_post() to see the format of that array:

Array
(
    [headers] => Array
        (
            [date] => Thu, 30 Sep 2010 15:16:36 GMT
            [server] => Apache
            [x-powered-by] => PHP/5.3.3
            [x-server] => 10.90.6.243
            [expires] => Thu, 30 Sep 2010 03:16:36 GMT
            [cache-control] => Array
                (
                    [0] => no-store, no-cache, must-revalidate
                    [1] => post-check=0, pre-check=0
                )

            [vary] => Accept-Encoding
            [content-length] => 1641
            [connection] => close
            [content-type] => application/php
        )
    [body] => <html>This is a website!</html>
    [response] => Array
        (
            [code] => 200
            [message] => OK
        )

    [cookies] => Array
        (
        )

)
我猜你想要的部分是body. 您可能想做这样的事情(非常简单,但很有说明性):

$content = wp_remote_get($query);
if (!is_wp_error($content)) {
  $content = json_decode($content[\'body\']);
}

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。