PHP CURL 在循环中出现 400 错误
PHP CURL getting 400 error in loop
这里 foreach 循环 returns 一个 phone 数字进入 link 但每当我尝试 运行 这个脚本时它给我错误 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
应用到我自己直接输入的其余字段的 phone 号。此外,如果 phone 数字不正确,则可能会出现错误请求,因为 api 将不会执行。
phone 号码中的 +
由于某种原因正在破坏接收应用程序系统。 URL 编码无法解决这个问题,因为他们只需要数字。您可以使用正则表达式将所有前导的非数字字符替换为空字符。
preg_replace('/^\D+/','', $serverthing)
\D
是一个非数字(\d
是一个数字)。
^
是字符串的开头。
+
是前面的一个或多个 character/group.
/
s 是显示正则表达式开始和结束的分隔符。
这里 foreach 循环 returns 一个 phone 数字进入 link 但每当我尝试 运行 这个脚本时它给我错误 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
应用到我自己直接输入的其余字段的 phone 号。此外,如果 phone 数字不正确,则可能会出现错误请求,因为 api 将不会执行。
phone 号码中的 +
由于某种原因正在破坏接收应用程序系统。 URL 编码无法解决这个问题,因为他们只需要数字。您可以使用正则表达式将所有前导的非数字字符替换为空字符。
preg_replace('/^\D+/','', $serverthing)
\D
是一个非数字(\d
是一个数字)。
^
是字符串的开头。
+
是前面的一个或多个 character/group.
/
s 是显示正则表达式开始和结束的分隔符。