【问题标题】:PHP CURL getting 400 error in loopPHP CURL在循环中得到400错误
【发布时间】:2017-03-18 20:28:50
【问题描述】:

在这里,foreach 循环返回一个电话号码,该电话号码在链接中,但每当我尝试运行此脚本时,它都会给我错误 400 错误请求。我也尝试过使用用户代理,但即使这样也不能解决错误。任何帮助都会很棒。

PS。这是我的第一个问题,如果我能提供任何解决此问题的方法,请告诉我。

foreach($var5 as $number) {
     $ch = curl_init();
     $ch1="http://bmsms.co.in/sendsms.aspx?mobile=0000000000&pass=xxxxxxxx&senderid=xxxxxxx&to=$number&msg=hey";
     echo $ch1;
     curl_setopt($ch, CURLOPT_URL, "$ch1");
     curl_setopt($ch, CURLOPT_HEADER, 0);
     //curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36');
     curl_exec($ch);
     curl_close($ch);
}

更新:

当我添加 urlencode 时,错误请求肯定会消失,但我希望执行此 url:http://bmsms.co.in/sendsms.aspx?mobile=1234567890&pass=password&senderid=ID&to=+ 9408644603&msg=hey,但执行此 url:http://bmsms.co.in/sendsms.aspx?mobile=1234567890&pass=password&senderid=ID&to=%2B+9408644603&msg=hey

此外,我只将urlencode 应用于我直接输入自己的其他字段的电话号码。此外,如果电话号码不正确,api 将无法执行,因此可能会出现错误请求。

【问题讨论】:

  • 您是否在循环的所有请求中都收到400 响应?
  • @nikos.svnk 是的,我收到一个错误,提示错误请求 400 多次。
  • 我是新手,你能告诉我如何确定吗? @chris85
  • @chris85 不,我不传递以下值: bmsms.co.in/…"; ?>

标签: php regex curl urlencode url-encoding


【解决方案1】:

电话号码中的+由于某种原因正在破坏接收应用程序系统。 URL 编码不能解决这个问题,因为他们只需要数字。您可以使用正则表达式将所有前导的非数字字符替换为空字符。

preg_replace('/^\D+/','', $serverthing)

\D 是非数字(\d 是数字)。
^ 是字符串的开头。
+ 是前一个字符/组中的一个或多个。/s 是显示正则表达式开始和结束的分隔符。

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2011-05-10
    • 2014-03-05
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多