存储XML响应(瞬时)?

时间:2011-07-06 作者:Noel Tock

没有太多的XML,所以我遇到了一些麻烦:

function getapi() 
{
    $api_response = wp_remote_get( "http://example.com/getXML" );
    $data         = wp_remote_retrieve_body( $api_response );
    $output       = new SimpleXMLElement ($data );

    return $output;
}
获取或设置瞬态
function transient()
{ 
    $transient = get_transient( \'transient_value\' );

    if ( ! $transient ) {
        $transient = getapi();
        set_transient( \'transient_value\', $transient, 180 );
    }

    return $transient;
}
我可以很容易地显示数据,但是calling it up from a stored transient 显示此错误的结果:

Node no longer exists in C:\\xampplite\\htdocs\\...
不确定为了正确存储数据,我需要执行哪些额外步骤。

非常感谢!

诺埃尔

1 个回复
最合适的回答,由SO网友:Rarst 整理而成

相符合的to this ticket:

无法序列化对象包装第三方库结构。必须序列化xml(到字符串),并将其存储到会话,并在从会话还原时重新加载xml

当您在瞬态中存储对象时,它会被序列化,并且并非所有对象都能够正确地进行序列化。

而是将文本XML数据存储在transient中。

结束

相关推荐

How deactivate the http-api

为它提供一个tipp或解决方案来停用WP\\U Http\\U Streams类中的方法request()?我也在脱机服务器上使用WordPress,并让wp\\U debug true用于开发和测试。但是我从函数中得到了很多关于使用http类的警告;例如,在仪表板中读取提要的函数。目前我已经停用了更新主题、插件、核心和cron的所有挂钩;请参阅我的小插件:https://github.com/bueltge/WP-Offline谢谢你的回复