1

我猜我的服务器设置有问题。我有一个从另一台服务器获取代码的代码。我不知道为什么,但代码不适用于我的 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,它们都已启用。

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

4

1 回答 1

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 服务器。

于 2012-10-28T10:03:44.627 回答