我正在编写一个通过curl数据提交以注册iContact电子邮件列表的php应用程序。但是,我不断收到无效的电子邮件地址错误。我认为这可能是由于我转义了@符号,所以它看起来像是%40而不是@。此外,根据带有CURLOPT_POSTFIELDS的curl_setopt的php文档:
因此,是否有必要通过php中的curl将@符号作为发布数据传递,而不先通过urlencode运行它?
最佳答案
首先在数据数组上使用 http_build_query()
,然后再将其传递给curl_setopt()
,这将导致它以application/x-www-form-encoded
而不是multipart/form-data
的形式发送表单(因此@不会被解释)。
另外,为什么您真的关心电子邮件地址中的@?仅在@是第一个字符而不在中间的某个位置时才重要。