如何修复 curl 请求返回奇怪的错误 PHP?

埃瓦拉

我正在尝试抓取一个网站,当我发送 curl 请求时,它返回以下内容:

Error :: An Error Was Encountered The URI you submitted has disallowed characters.

但是当我使用 Postman 发送请求或使用浏览器输入时,它会返回正常页面。所以现在我相信问题出在我的代码中:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
return curl_exec($ch);

有什么解决办法吗?

我的网址

朱万

您必须对 URL 进行编码。

试试urlencode()功能。如果这不起作用,请使用此自定义函数

  function encode_url(string $string)
    {
        $entities = array('%21', '%2A', '%27', '%28', '%29', '%3B', '%3A', '%40', '%26', '%3D', '%2B', '%24', '%2C', '%2F', '%3F', '%25', '%23', '%5B', '%5D');
        $replacements = array('!', '*', "'", "(", ")", ";", ":", "@", "&", "=", "+", "$", ",", "/", "?", "%", "#", "[", "]");
        return str_replace($entities, $replacements, urlencode($string));
    }

我已经测试过了,这是结果 https://kitchen.sayidaty.net/%D9%88%D8%B5%D9%81%D8%A7%D8%AA-%D8%A7%D9%84%D8%AE%D8%A8%D8%B2

这是沙箱 URL http://sandbox.onlinephpfunctions.com/code/e67e3e386e85b52ddee4e2d651b70ff6228e4a6d

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章