php自定義函數(shù)實(shí)現(xiàn)JS的escape的方法示例
本文實(shí)例講述了php自定義函數(shù)實(shí)現(xiàn)JS的escape的方法。分享給大家供大家參考,具體如下:
//php function
function escape($string) {
$n = $bn = $tn = 0;
$output = '';
$special = "-_.+@/*0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
while($n < strlen($string)) {
$ascii = ord($string[$n]);
if($ascii == 9 || $ascii == 10 || (32 <= $ascii && $ascii <= 126)) {
$tn = 1;$n++;
} elseif(194 <= $ascii && $ascii <= 223) {
$tn = 2;$n += 2;
} elseif(224 <= $ascii && $ascii <= 239) {
$tn = 3;$n += 3;
} elseif(240 <= $ascii && $ascii <= 247) {
$tn = 4;$n += 4;
} elseif(248 <= $ascii && $ascii <= 251) {
$tn = 5;$n += 5;
} elseif($ascii == 252 || $ascii == 253) {
$tn = 6;$n += 6;
} else {
$n++;
}
$singleStr = substr($string,$bn,$tn);
$charVal = bin2hex(iconv('utf-8', 'ucs-2', $singleStr));
if(base_convert($charVal, 16, 10) > 0xff) {
if (!preg_match("/win/i", PHP_OS))
$charVal = substr($charVal, 2, 2).substr($charVal, 0, 2);
$output .= '%u' . $charVal;
}
else {
if(false !== strpos($special, $singleStr))
$output .= $singleStr;
else
$output .="%" . dechex(ord($string[$bn]));
}
$bn = $n;
}
return $output;
}
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP編碼與轉(zhuǎn)碼操作技巧匯總》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《php排序算法總結(jié)》、《PHP常用遍歷算法與技巧總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計(jì)算法總結(jié)》、《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》、《php正則表達(dá)式用法總結(jié)》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- php中的路徑問題與set_include_path使用介紹
- PHP include_path設(shè)置技巧分享
- PHP中spl_autoload_register()函數(shù)用法實(shí)例詳解
- PHP中FTP相關(guān)函數(shù)小結(jié)
- 全面解析PHP操作Memcache基本函數(shù)
- php的debug相關(guān)函數(shù)用法示例
- php中array_column函數(shù)簡(jiǎn)單實(shí)現(xiàn)方法
- PHP中Array相關(guān)函數(shù)簡(jiǎn)介
- PHP與Java對(duì)比學(xué)習(xí)日期時(shí)間函數(shù)
- 淺談PHP eval()函數(shù)定義和用法
- PHP 在數(shù)組中搜索給定的簡(jiǎn)單實(shí)例 array_search 函數(shù)
- 淺談PHP檢查數(shù)組中是否存在某個(gè)值 in_array 函數(shù)
- PHP中set_include_path()函數(shù)相關(guān)用法分析
相關(guān)文章
C#靜態(tài)方法與非靜態(tài)方法實(shí)例分析
這篇文章主要介紹了C#靜態(tài)方法與非靜態(tài)方法,重點(diǎn)講述了靜態(tài)方法的實(shí)際應(yīng)用,有助于進(jìn)一步加深對(duì)C#程序設(shè)計(jì)的理解,需要的朋友可以參考下2014-09-09
PHP對(duì)象轉(zhuǎn)換為數(shù)組函數(shù)(遞歸方法)
本方法主要是應(yīng)用于迭代對(duì)象。我應(yīng)用的地方是simplexml中的simplexml_load_string()上,因?yàn)榉祷氐娜菍?duì)象,如果提取數(shù)據(jù)比較麻煩,所以應(yīng)用了下面的函數(shù)2012-02-02
php實(shí)現(xiàn)Session存儲(chǔ)到Redis
這篇文章主要介紹了php實(shí)現(xiàn)Session存儲(chǔ)到Redis的方法,php Session可以保存到文本或者內(nèi)存、還有數(shù)據(jù)庫,本文講的是存到Redis的方法,2015-11-11
PHP使用Redis替代文件存儲(chǔ)Session的方法
這篇文章主要介紹了PHP使用Redis替代文件存儲(chǔ)Session的方法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Session的基本操作方法及使用Redis存儲(chǔ)session的相關(guān)技巧,需要的朋友可以參考下2017-02-02
PHP響應(yīng)post請(qǐng)求上傳文件的方法
這篇文章主要介紹了PHP響應(yīng)post請(qǐng)求上傳文件的方法,涉及php針對(duì)post傳輸數(shù)據(jù)處理的相關(guān)技巧,需要的朋友可以參考下2015-12-12
PHP使用imap_open實(shí)現(xiàn)讀取QQ郵箱
這篇文章主要為大家詳細(xì)介紹了PHP如何使用imap_open實(shí)現(xiàn)讀取QQ郵箱功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02
PHP實(shí)現(xiàn)過濾掉非漢字字符只保留中文字符
這篇文章主要介紹了PHP實(shí)現(xiàn)過濾掉非漢字字符只保留中文字符,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-06-06

