将PHP从5.6升级到7.3后请求错误

时间:2019-09-23 15:55:26

标签: php

我有一个脚本,该脚本向API发出请求,然后将响应返回给AJAX。将我的服务器从PHP 5.6更新到PHP 7.3后,请求未成功,仅返回“ null”。这是我得到的错误:

  

PHP警告:file_get_contents(https://api.ekata.com/3.3/identity_check?'。primary.address.city = Los Angeles&primary.address.postal_code = 90001&primary.address.state_code = CA&primary.address.street_line_1 = 7519 + Wadsworth + Ave&primary.name = SteveTest + SmithTest&primary.phone = 9165551234。'&api_key = XXXXXXXXXX):无法打开流:HTTP请求失败!

这是PHP:

<?php

# An HTTP GET request example
header('Content-Type: application/json');
$url = $_POST['url']; 

$json = file_get_contents('https://api.ekata.com/3.3/identity_check?'.$url.'&api_key=XXXXXXX');

$obj = json_decode($json);
echo json_encode($obj, JSON_PRETTY_PRINT);

2 个答案:

答案 0 :(得分:0)

您的错误消息清楚地表明file_get_contents尝试获取远程URL的尝试失败。您可能应该改用CURL。或者,查看phpinfo()的输出并查找allow_url_fopen。如果这是 0 false ,则可以尝试更改php.ini设置,以允许PHP使用诸如file_get_contents之类的功能访问远程URL。

请注意,如果更改php.ini,则可能需要重新启动apache(如果PHP作为模块运行)或重新启动PHP-FPM(如果您的计算机正在运行该模块)。

编辑:我要补充一点,即在咳嗽之前,您的PHP脚本应检查file_get_contents调用的结果。如果结果为空,则可能应该让您的PHP脚本咳出某种错误对象,并让javascript在尝试对JSON结果进行操作之前检查错误情况。

答案 1 :(得分:0)

因此,问题在于city字段中包含空格,因此API URL无效。直到我真正开始在“网络/响应”标签中查看时,该信息才变得明显

https://proapi.whitepages.com/3.3/lead_verify?primary.address.city=Los Angeles&primary.address.postal_code=90001

我将此添加到我的php文件中,并成功发送:

$url = str_replace(" ", "%20", $url);

但是我确实需要研究CURL,因此我将在我们的DEV网站上进行此操作。谢谢大家帮助我解决此问题。

相关问题