【问题标题】:Curl or Simple XML? - Apache or PHP settings?卷曲或简单的 XML? - Apache 或 PHP 设置?
【发布时间】:2012-10-28 10:00:42
【问题描述】:

我猜我的服务器设置有问题。我有一个从另一台服务器获取代码的代码。我不知道为什么,但该代码不适用于我的 VPS,但它适用于一个简单的共享主机帐户...

代码如下:

$post = array(
      'KEY' => 'somekey',
      'format' => 'xml'
    );


    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'xxxxxxxxxx.com' . http_build_query($post));
    curl_setopt($ch,  CURLOPT_RETURNTRANSFER, TRUE);
    $response = curl_exec($ch);
    $xml_obj = simplexml_load_string($response);
    $json = json_encode($xml_obj);
    $array = json_decode($json, true);
    curl_close($ch);

如果我在我的共享托管服务器上运行它,它就像一个魅力,但它只是有一些问题(它不输出)并且脚本没有运行。我已经测试过我得到了 1(真)这个陈述:$json = json_encode($xml_obj); 但没有任何进一步的代码。所以可能是哪里出了问题。

我还检查了是否启用了 xml DOM,确实如此。我还检查了 CURL 和 json,它们都启用了。

有人可以帮助我吗?如果没有错误消息,我什么都做不了,而且我无法弄清楚可能是什么问题。 :/

【问题讨论】:

    标签: php xml json apache curl


    【解决方案1】:

    看来您可能没有启用远程 allow_url_fopen。 将其放在脚本的开头:

    ini_set("allow_url_fopen", 1);
    

    要启用 curl_exec,您需要修改 php.ini 并将其从最后一个不允许的函数中删除。要找出您的 php.ini,您可以在脚本开头调用一次:

    phpinfo(); die();
    

    这将告诉您使用哪个 php.ini 文件(查找 php.ini 字符串)。修改 php.ini 后,您需要重新启动 Web 服务器。

    【讨论】:

    • 能否请您详细说明这是什么以及如何启用它?
    • 试试那行,如果它在你放入后对你有用,那么你可以修改你的 php.ini 以始终允许它。
    • 它现在可以工作了我遇到了另一个问题:“curl_exec() 出于安全原因已被禁用”我该如何启用它?
    • 为此,您将不得不修改 php.ini 文件并从不允许的函数列表中删除 curl_exec。编辑:我修改了答案以放置所有必需的信息。好奇,你的 VPS 主机是谁(我自己现在也在市场上)?
    • 男人!我欠你一个 :) 非常感谢你的帮助。它现在正在工作:) 为这个人竖起大拇指:)
    猜你喜欢
    • 2017-04-09
    • 2012-03-12
    • 2017-09-16
    • 1970-01-01
    • 2015-05-13
    • 2016-07-19
    • 2012-04-08
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多