PHP 寫資料,形成一個shell檔案,去掉^M
來源:互聯網
上載者:User
PHP 寫檔案,形成一個shell檔案,去掉^M
PHP 代碼:
$file_name = '/srv/cfg/sysnetwork.cfg';
$sysnetwork_str = "#!/bin/sh\n\r";
if($_REQUEST['mgt_ip']&&$_REQUEST['mgt_netmask']){
$sysnetwork_str .= '/sbin/ifconfig mgt '.$_REQUEST['mgt_ip'].' netmask '.$_REQUEST['mgt_netmask']."\n\r";
}
if($_REQUEST['ext_ip']&&$_REQUEST['ext_netmask']){
$sysnetwork_str .='/sbin/ifconfig ext '.$_REQUEST['ext_ip'].' netmask '.$_REQUEST['ext_netmask']."\n\r";
}
if($_REQUEST['gateway']){
$sysnetwork_str .= '/sbin/route add default gw '.$_REQUEST['gateway'];
}
$write_rs=file_put_contents($file_name,$sysnetwork_str);
換行使用者的\n\r
形成的檔案如下:
#!/bin/sh
^M/sbin/ifconfig mgt 192.168.2.45 netmask 255.255.255.0
^M/sbin/ifconfig ext 192.168.2.99 netmask 255.255.255.0
^M/sbin/route add default gw 192.168.11.1
結果shell不能執行,發現多了^M ,
怎麼解決?
------解決方案--------------------
曆史問題
用伺服器系統下的標準分行符號即可,可以用常量PHP_EOL