我在通过套接字向客户端发送消息时遇到问题,我想发送的字符串就是这样的" @@ w32,12345678,xxx,5 * zy \ r \ n"
$msg = $_POST['comm_input']; //"@@w32,12345678,xxx,5*zy\r\n"
如果这是张贴的,我得到$ msg的值,这是" @@ w32,12345678,xxx,5 * zy \ r \ n"
但是我的客户不会接受这种消息..但如果我手动这样做而不发布comm_input;
$testmsg = "@@w32,12345678,xxx,5*zy\r\n";
它工作正常,我试着在firebug中看到没有双引号和\ r \ n。它工作正常。
如果我发布了comm_input.并在firebug中看到有双引号和\ r \ n,我该如何删除它。
答案 0 :(得分:2)
您可以使用str_replace function
删除\ r \ n。
<?php
$testmsg = "@@w32,12345678,xxx,5*zy\r\n"; <-- $_POST value
$order = "\r\n";
$replace = "";
$newstr = str_replace($order, $replace, $testmsg);
echo $newstr; //outputs @@w32,12345678,xxx,5*zy
?>
答案 1 :(得分:1)
答案 2 :(得分:1)
使用str_replace
,您需要使用\
和\
转义\r
,因此\\r
字符串变为$msg = $_POST['comm_input']; //"@@w32,12345678,xxx,5*zy\r\n" ;
$new_msg = str_replace("\\r\\n", "", $msg);
$new_msg = str_replace('"', "", $new_msg);
修改:删除双引号
{{1}}
请阅读本文:Escape Sequence in PHP