当前位置:  开发笔记 > 编程语言 > 正文

使用PHP转义CURL @符号

如何解决《使用PHP转义CURL@符号》经验,为你挑选了2个好方法。

我正在编写一个php应用程序,通过curl数据提交注册iContact电子邮件列表.但是我一直收到无效的电子邮件地址错误.我想这可能是因为我正在逃避@符号,所以它看起来像%40而不是@.另外,根据curl_setopt与CURLOPT_POSTFIELDS的php文档:

要在HTTP"POST"操作中发布的完整数据.要发布文件,请在文件前加上@并使用完整路径.

那么,无论如何通过php中的curl传递@符号作为发布数据而不首先通过urlencode运行它?



1> Patrick Glan..:

http_build_query()在传递数据数组之前首先使用它curl_setopt(),这将导致它发送表单application/x-www-form-encoded而不是multipart/form-data(因此@不被解释).

另外你为什么真正关心电子邮件地址中的@?只有@是第一个字符,而不是中间的某个字符才重要.


@kclement,你应该总是将新问题作为一个实际问题发布,而不是在评论中,因为它不太可能被看到.`http_build_query()`不仅适用于GET请求,如果您将结果传递给邮件正文并使用cURL发布它应该有效.

2> 小智..:

在搜索PHP curl手册之后,我发现如果post字段是字符串而不是文件(如果使用multipart/form-data编码发布),则没有信息可以转义第一个'@'.

我解决这个问题的方法是在文本的开头添加一个空白.虽然我们的后端API将剥离空白,因此它可以删除空白并恢复原始文本.我不知道天气Twitter API会削减用户输入的空白​​.

如果是这样,此解决方法也适用于您.

如果任何人在使用PHP curl和multipart/form-data编码时找到了逃避第一个'@'的方法,请告诉我们.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有