donglu7998 2017-03-18 20:28
浏览 259
已采纳

PHP CURL在循环中获得400错误

here the foreach loops returns a phone number which goes in the link but whenever I try to run this script it gives me the error 400 bad request. I have also tried using the useragent but even that does not solve the error. any help would be great.

PS. this is my first question please let me know if I can provide anything to solve this problem.

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);
}

Update:

When I add urlencode the bad request definitely goes but I want this url to execute: http://bmsms.co.in/sendsms.aspx?mobile=1234567890&pass=password&senderid=ID&to=+ 9408644603&msg=hey but instead this url is executed: http://bmsms.co.in/sendsms.aspx?mobile=1234567890&pass=password&senderid=ID&to=%2B+9408644603&msg=hey

Also here I have only applied urlencode to the phone number rest of the fields I'm entering myself directly. Also the bad request probably goes as the api won't execute if the phone number is not correct.

  • 写回答

1条回答 默认 最新

  • dpql57753 2017-03-19 20:15
    关注

    The + in the phone numbers for some reason is breaking the receiving applications system. URL encoding doesn't resolve this because they only want numbers. You can use a regex to replace all the leading, non-numerical, characters with nothing.

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

    \D is a non number (\d is a number).
    ^ is the start of the string.
    + is one or more of the previous character/group.
    /s are delimiters showing the start and end of the regex.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问
  • ¥15 初学者如何快速上手学习stm32?
  • ¥15 如何自动更换布娃娃图片上的衣服
  • ¥15 心理学eprime编程
  • ¥15 arduino esp8266开发