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(true)を取得したことをテストしました:$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を見つけるには、スクリプトの最初でこれを1回呼び出すことができます。

phpinfo(); die();

これにより、使用するphp.iniファイルがわかります(php.ini文字列を探してください)。php.iniを変更したら、Webサーバーを再起動する必要があります。

于 2012-10-28T10:03:44.627 に答える