php使用escapeshellarg時中文被過濾的解決方法
本文分析了php使用escapeshellarg時中文被過濾的解決方法。分享給大家供大家參考。具體如下:
一、問題:
同樣的代碼,發(fā)現(xiàn)通過 localhost/index.php 訪問,和在 shell 中通過 php ./index.php 運行結(jié)果卻不一樣。
在程序中需要通過 shell_exec 來執(zhí)行一個 linux 程序,而它的輸入來自 echo ,即:
shell_exec('echo '.escapeshellarg($str).' | some_cmd 2>&1');
二、解決方法:
而這個 $str 中可能包含中文的。一開始我還以為是 some_cmd 自己把中文濾掉,后來發(fā)現(xiàn)是 escapeshellarg 的問題。
貌似出現(xiàn)這個問題的不多,經(jīng)過查詢與測試發(fā)現(xiàn)原來是 shell 和 apache php-cgi 的運行環(huán)境不同引起的。
在 php 中加入:
setlocale(LC_CTYPE, "UTF8", "en_US.UTF-8");
就正常了!
希望本文所述對大家php程序設計有所幫助。
- php實現(xiàn)過濾字符串中的中文和數(shù)字實例
- PHP實現(xiàn)過濾掉非漢字字符只保留中文字符
- php 過濾英文標點符號及過濾中文標點符號代碼
- php完全過濾HTML,JS,CSS等標簽
- PHP字符過濾函數(shù)去除字符串最后一個逗號(rtrim)
- php正則過濾html標簽、空格、換行符的代碼(附說明)
- PHP開發(fā)不能違背的安全規(guī)則 過濾用戶輸入
- php過濾HTML標簽、屬性等正則表達式匯總
- php 安全過濾函數(shù)代碼
- 幾個有用的php字符串過濾,轉(zhuǎn)換函數(shù)代碼
- 比較好用的PHP防注入漏洞過濾函數(shù)代碼
- PHP屏蔽過濾指定關鍵字的方法
相關文章
深入PHP empty(),isset(),is_null()的實例測試詳解
本篇文章是對PHP empty(),isset(),is_null()的實例測試進行了詳細的分析介紹,需要的朋友參考下2013-06-06
PHP入門教程之數(shù)組用法匯總(創(chuàng)建,刪除,遍歷,排序等)
這篇文章主要介紹了PHP入門教程之數(shù)組用法,結(jié)合大量實例總結(jié)分析了php關于數(shù)組的創(chuàng)建、打印、遍歷、獲取、排序、插入、刪除等常見操作技巧,需要的朋友可以參考下2016-09-09
php使用parse_str實現(xiàn)查詢字符串解析到變量中的方法
這篇文章主要介紹了php使用parse_str實現(xiàn)查詢字符串解析到變量中的方法,較為詳細的分析了parse_str()函數(shù)的功能及字符串解析為變量的具體用法,并總結(jié)了使用中的相關注意事項,需要的朋友可以參考下2017-02-02
【CLI】利用Curl下載文件實時進度條顯示的實現(xiàn)
這篇文章主要給大家介紹了關于【CLI】利用Curl下載文件實時進度條顯示的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-03-03

