ホームページ  >  記事  >  バックエンド開発  >  js関数 phpカスタム関数 JSエスケープ実装方法の例

js関数 phpカスタム関数 JSエスケープ実装方法の例

WBOY
WBOYオリジナル
2016-07-28 08:27:231159ブラウズ

この記事の例では、PHP カスタム関数を使用して JS エスケープを実装する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

//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;
}

さらに PHP 関連のコンテンツに興味のある読者は、このサイトの特別トピック「PHP エンコーディングおよびトランスコーディング操作スキルの概要」をチェックしてください。 「php 文字列の使用法」の概要」、「完全な PHP 配列 (配列) 操作スキル」、「php ソート アルゴリズムの概要」、「PHP の一般的な走査アルゴリズムとテクニックの概要」、「PHP データ構造とアルゴリズムのチュートリアル」、「php プログラミング アルゴリズムの概要」 」、「PHP 数学的演算スキルのまとめ」、「PHP 正規表現の使い方のまとめ」、「PHP の操作と演算子の使い方のまとめ」、「PHP の共通データベース操作スキルのまとめ」

この記事が皆様のお役に立てれば幸いです。 PHPプログラミングで。

上記では、JS エスケープを実装するための js 関数と PHP カスタム関数の例を紹介しました。js 関数の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。