>백엔드 개발 >PHP 튜토리얼 >js 함수 php 사용자 정의 함수 JS 이스케이프 구현 방법의 예

js 함수 php 사용자 정의 함수 JS 이스케이프 구현 방법의 예

WBOY
WBOY원래의
2016-07-28 08:27:231245검색

이 기사의 예에서는 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으로 문의하세요.