이는 중국어 간체 및 번체로 패키지된 클래스입니다. 또 다른 두 개의 테이블 파일이 필요합니다. 1. http://www.jerry.com.tw/php/big5.map 2. //www.jerry.com.tw/php/gb.map 프로그램은 다음과 같습니다: CCharset.php3 < //============== = ===================================== // 프로그래머: 매직 제리 // // function Big5_Gb($str) => 문자열의 경우 big5를 GB로 // function Gb_Big5($str) => 문자열의 경우 GB를 Big5로 //===== = =============================================== class CCharset { var $gb_map="gb.map"; //다른 경로에 넣으려면 전체 경로를 추가하세요. var $big5_map="big5.map" //예를 들면= " /home/table/gb.map var $dep_char = 127; //---------------------------- ------------------------------------- 함수 cbig5_gb($str,$fd) { $c=ord(substr($str,0,1)) $x=ord(substr($str,1,1)) $address=(($c-160) )*510) ($x-1)*2; fseek($fd, $address) $hi=fgetc($fd) 🎜>return "$hi$lo"; } function cgb_big5($str,$fd) { $c=ord(substr($str,0,1)) $ x=ord(substr($str,1,1)); $address=(($c-160)*510) ($x-1)*2 fseek($fd, $address) ); $hi=fgetc($fd); $hi$lo" 반환 //-- ------------------------------------- ----------- function Big5_Gb($str) { $fd = fopen ($this->gb_map, "r") $str=str_replace(" charset=big5","charset=gb2312", $str); $outstr=""; for($i=0;$i $ch=ord(substr($str,$i,1)); if($ch > $this->dep_char) { $outstr.=$this->cbig5_gb(substr( $str,$i,2),$fd); $i ; } else { $outstr.=substr($str,$i,1) } fclose ($fd) $outstr 반환 } //------------ ---------------- 함수 Gb_Big5($str ) { $fd = fopen ($this->big5_map, "r") $str=str_replace("charset=gb2312","charset=big5", $str) $ outstr ="" for($i=0;$i$ch=ord(substr($str,$i,1)); > if($ch > $this->dep_char) { $outstr.=$this->cgb_big5(substr($str,$i,2),$fd) $i ; } else { $outstr.=substr($str,$i,1); } } fclose($fd) return $outstr; > } } ?> ============================== === ============================= 사용예:
/ / 디자이너 : Magic Jerry //====문자열 직접 변환 사용법======== include("CCharset.php3") $obj=new CCharset ; $big5="big5의 텍스트 문자열입니다." $tgb=$obj->Big5_Gb($big5) echo $tgb; 변환된 1GB 코드 문자열입니다 $tbig5=$obj->Gb_Big5($tgb) echo $tbig5; // 다시 반환됨: big5 //======= ============================ ?>
//직접 변환하는 경우 웹페이지 또는 파일 // 구문 http://your.domain.com.tw/this program.php3?http://웹페이지 URL 또는 트랜스코딩할 파일 // 예: QIMO 홈페이지 변환 // http://your.domain.com.tw/this program.php3?http://www.kimo.com.tw/index.shtml // 참고: 이 웹페이지에 다음 쓰기 사용자를 인증하는 등 쿠키를 사용하면 쫓겨나거나 잘못 로그인될 수 있습니다. // 왜 그럴까요? @_@ include("CCharset.php3"); $file=$QUERY_STRING; $fcontents = Join( '', file( "$file" ) ) $fc href=$file>", $fcontents); $code =new CCharset $gb=$code->Big5_Gb($fcontents); echo $gb;
JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,
세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.
PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.
정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.