質問
私は奇妙な問題に遭遇しました。
APIサービスを呼び出すためのいくつかの簡単な行Curlコードがあります。このコードは、Drupal(ブラウザーとCLIのPHPファイル)を実行するときに完全に正常に実行されますが、ファイルがDrupalに含まれている場合(Bootstrap後)、Deferentiallyで動作します。
通常の状態では、APIサービスによって返される結果には多くの結果がありますが、Drupal内で実行すると、1つの結果のみを返します。
DrupalはCurlが使用している設定を変更していると思われます。これにより、APIが通話を理解している方法が変更されています。
誰かが問題が何によって引き起こされるのか知っていますか?
以下のコードは、共通のライブラリ内で記述されたAPIクラスファイルから派生しています。他のPHPプロジェクトでこれらを将来使用する予定です。
これがコードです:
$params = array(
'domain' => array(
'www.domain1.com',
'www.domain2.info',
'www.domain3.in.th',
'www.domain4.com',
'www.domain5.in',
)
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'http://api.postrank.com/v2/domain/activity?appkey=123456&format=json',
CURLOPT_HEADER => false,
CURLOPT_CONNECTTIMEOUT => 30,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($params)
));
$response = curl_exec($ch);
$err = curl_errno($ch);
curl_close($ch);
print_r($response);
解決
答えは、Drupalが変化するということでした & クエリストリングで &
そして、リモートAPIサービスは引数セパレーターのみを処理しました & そしてそうではありません &
. 。したがって、当然のことながら、投稿データを分割すると、配列内の最初のパラメーターのみが正しくなりました。
所属していません drupal.stackexchange