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

