我无法弄清楚为什么这段代码在我的PC(localhost)上本地工作但在公共服务器上没有在线工作?它可以是PHP版本的问题吗?感谢所有的帮助!
$post_data = array('item_type_id' => '8', 'string_key' => 'Test Nyckel2', 'string_value' => 'Test Varde2', 'string_extra' => 'Test Extra', 'numeric_extra' => 'Test Numeric Extra', 'is_public' => true, 'is_public_for_contacts' => true);
$post_data = json_encode(array('item' => $post_data), JSON_FORCE_OBJECT);
$c = curl_init('http://example.com/items.json');
curl_setopt($c, CURLOPT_VERBOSE, 1);
curl_setopt($c, CURLOPT_COOKIE, 'fb_cookie='.$fb_code);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_POSTFIELDS, $post_data);
curl_exec($c);
curl_close($c);
答案 0 :(得分:1)
我看到你在json_encode()调用中使用了options参数。
然而,这是PHP doc所说的(http://www.php.net/manual/en/function.json-encode.php):
5.3.0 The options parameter was added.
所以PHP代码使用的是未定义的常量JSON_FORCE_OBJECT?
答案 1 :(得分:1)
curl_exec
返回FALSE。然后,您可以使用curl_error()
和curl_errno()
if (curl_exec($c) === FALSE) {
die("Curl failed: " . curl_error($c));
}
永远不要假设卷曲调用会成功。确实检查了返回的值以防万一。即使curl设置正确,网络故障也可能导致连接中断,远程服务器可能出现故障,防火墙出现故障等等......
答案 2 :(得分:0)
cURL Library是否安装在无效的服务器上?
如果你不知道,请使用phpinfo();功能