如何修复或避免字符串中缺少+符号。 我使用相同的代码 - 它工作正常。 我尝试过使用$ num1。“+”。$ num2没有运气,非常奇怪。 Photo of broblem
if(stripos ($text, 'add') !== false){
$trimtext = substr($text,3);
$num1 = strstr($trimtext, '+', true);
$trimnum2 = strstr($trimtext, '+', false);
$num2 = str_replace("+","",$trimnum2);
$result = $num1 + $num2;
file_get_contents("$website/sendmessage?&parse_mode=HTML&chat_id=$chatid&text=<code>$num1 + $num2 = $result</code>");
}
if(stripos ($text, 'sub') !== false){
$trimtext = substr($text,3);
$num1 = strstr($trimtext, '-', true);
$trimnum2 = strstr($trimtext, '-', false);
$num2 = str_replace("-","",$trimnum2);
$result = $num1 - $num2;
file_get_contents("$website/sendmessage?&parse_mode=HTML&chat_id=$chatid&text=<code>$num1 - $num2 = $result</code>");
}
答案 0 :(得分:0)
你的问题是&#34; +&#34;是URL编码中的空间。你需要替换&#34; +&#34;用&#34;%2B&#34;在查询字符串中。
要纠正Nehal的答案,你想要
file_get_contents("$website/sendmessage?&parse_mode=HTML&chat_id=$chatid&text=".urlencode("<code>$num1 + $num2 = $result</code>"));
您不希望对$ website变量或其他查询参数的内容进行URL编码,而是将它们添加到URL编码的字符串中。
答案 1 :(得分:0)
以下字符在您网址的路径组件中具有特殊含义(路径组件是&#39;?&#39;之前的所有内容):
";" | "/" | "?"
除此之外,以下字符在您网址的查询部分中具有特殊含义(&#39;?&#39;之后的所有内容)。因此,如果他们是在&#39;&#39;之后?你需要逃脱它们:
":" | "@" | "&" | "=" | "+" | "$" | ","
有关更深入的说明,请参阅RFC。
根据PHP文档:
注意:如果您要打开包含特殊字符的URI,例如空格, 你需要用urlencode()编码URI。
所以,你要做的就是:
file_get_contents(urlencode("$website/sendmessage?&parse_mode=HTML&chat_id=$chatid&text=<code>$num1 + $num2 = $result</code>"));