最近用php模拟telnet连接路由器发送指令时,fwrite发送指令后,再次发送回车符(“\n”)和换行符(“\r”)执行当前指令时,并没有按照预想的产生任何效果:
fwrite($socket_handle,'sys reboot');
fwrite($socket_handle,'\r\n');
查询了一番才发现,php代码中用单引号包含的内容如果含有转义字符,那么转义字符不会被转义,而是当作字符串被处理。换成双引号即可。另外单双引号的区别就是,在单引号内的变量不会被解释执行,其他都一样,使用时保持一致即可。