1

我正在运行 XAMPP/Win10、PHP 7.0.1。我从 GitHub 上获取了Socrata/soda-php并运行了index.php。我没有对文件进行任何更改。

当我提交表格时,我总是Error "0" from server:没有其他信息。我的 PHP 错误日志中没有任何内容。

我可以毫无问题地直接访问 JSON 输出。我还可以使用客户端 JavaScript 抓取和解析它。

我查看了另一个具有相同问题的问题,但它是不同的数据集,因此答案不适用。我还检查了关于我启用 cURL 的问题的建议,我确认了这一点。

我希望使用这个 PHP 示例从 CMS 访问数据(我已经在使用 JavaScript),但我需要先让它按原样工作,这样我才能自学接下来的步骤。

4

1 回答 1

3

为了确认这不是问题soda-ruby,我进行了一些本地测试,并且我能够让示例在 PHP 7.0.3 中正常工作(CLI 服务器,通过自制软件全新安装)。

示例代码确实返回了零个结果,因为该位置的危险狗显然已经移动了,所以我更新了默认位置和搜索范围。我还更新了示例以对该数据集使用新的SODA 2.1 端点,尽管 2.0 版本现在仍然可以正常工作。因此,请确保您获取最新更新,以便我们保持同步。

Error "0"消息实际上来自它libcurl自己。这意味着 cURL 甚至与 连接都有问题data.austintexas.gov,这通常意味着您的系统无法完成 SSL 握手,因为 PHP/libcurl 不信任远程服务器的证书。我在 Austin 的网站上看到过很多次,而且经常在 Windows 用户中看到。我怀疑是这种情况,特别是考虑到您可以通过 JavaScript 访问相同的 API。

解决方案是更新您的根证书或指向未与 XAMPP 捆绑的外部证书颁发机构。我自己从来没有用 XAMPP 这样做过,但这似乎是一个可靠的答案:Enabling SSL Support for CURL in XAMPP

建议的修复之一还完全禁用 SSL 验证,如果您只是打算使用 PHP 来破解一下而不是在生产环境中,这将是可以的。但请不要在生产中使用该解决方法,因为它会使您容易受到 MITM 攻击。

于 2016-02-16T19:12:48.067 回答