PHP의 bz2 압축 확장 도구 설명
설치 확장
이 확장된 설치는 bzip2-devel이 있어야 합니다.그래서 우리는 먼저 시스템에 이 패키지의 지원을 설치하고 이 확장은 PHP 설치 패키지와 함께 발표해야 하기 때문에 PHP를 컴파일하고./configure에 해당하는 컴파일 명령을 추가하면 됩니다.
# yum install bzip2-devel
# ./configure xxxx --with-bz2
# make && make install
기본 작업
Bzip2는 함수가 많지 않고 간단합니다. 우선 문자열을 파일에 저장하는 것을 보겠습니다.
$bz = bzopen('/tmp/test.bz', 'w');
// -rw-r--r-- 1 root root 14 Jun 28 09:51 test.bz
$text = "This is Bz Compress";
bzwrite($bz, $text);
// -rw-r--r-- 1 root root 59 Jun 28 09:53 test.bz
bzclose($bz);
$bz = bzopen('/tmp/test.bz', 'r');
$v = bzread($bz);
echo $v, PHP_EOL;
// This is Bz Compress
bzclose($bz);
파일 조작 함수와 마찬가지로, 우리는 먼저 bzopen () 을 통해 파일을 열어 핸들을 얻어야 한다.그리고 bzwrite () 를 사용하여 파일을 쓰고 bzread () 를 사용하여 파일을 읽습니다.마지막으로 bzclose () 를 사용하여 파일을 닫습니다.여기서 주의해야 할 것은 bzopen () 의 두 번째 인자, 즉 파일이 열리는 형식입니다. "w"또는 "r"만 쓸 수 있습니다.그것은 다른 유형이 없고 동시에 읽고 쓸 수 없다. 즉, "wr"라는 형식으로 쓸 수 없다.그래서 우리는 파일을 다 쓴 후에 다시'r'를 사용하여 파일을 열어야만 읽을 수 있다.
읽기 길이 설정
$bz = bzopen('/tmp/test.bz', 'r');
$v = bzread($bz, 10);
echo $v, PHP_EOL;
// This is Bz
$v = bzread($bz);
echo $v, PHP_EOL;
// Compress
bzclose($bz);
bzread () 의 두 번째 인자는 선택할 수 있는 바이트 길이입니다. 기본값은 1024입니다. 한 번에 최대 8192개의 압축되지 않은 바이트를 읽을 수 있습니다.문자열 인코딩
Bzip2 확장은 문자열을 직접 인코딩하는 함수도 제공합니다.매번 파일에 저장할 필요가 없습니다. 같은 문자열이라면 문자열 인코딩을 사용하는 함수와 파일에 출력된 내용은 같은 난코딩의 이진 내용입니다.
$str = "Test compress String";
$bzstr = bzcompress($str, 9);
echo $bzstr, PHP_EOL;
// BZh91AY&SY��J���@
//
// �� 1
// df����2�h>.�p�!��//
$newStr = bzdecompress($bzstr);
echo $newStr, PHP_EOL;
$chineseStr = " ";
$bzstr = bzcompress($chineseStr, 9);
echo bzdecompress($bzstr), PHP_EOL;
bzcompress () 는 문자열을 인코딩하여 압축하는 데 사용되며, 두 번째 매개 변수는 압축의 비율이며, 9는 최고 등급이다.인코딩된 내용은 비인간적인 2진 디코딩 내용이다.bzdecompress () 는 인코딩된 내용을 디코딩하는 데 사용됩니다.많은 어린이들이 비밀 내용의 암호화 전송을 할 수 있다는 것을 발견했다고 믿는다.동시에 테스트 코드에서 우리는 그것이 중국어에도 정상적으로 지원되는 것을 볼 수 있다.오류 정보
마지막으로 Bzip2의 오류 처리 함수를 살펴보겠습니다.
$bz = bzopen('/tmp/test.bz', 'r');
bzwrite($bz, 'aaa');
print_r(bzerror($bz));
// Array
// (
// [errno] => -1
// [errstr] => SEQUENCE_ERROR
// )
echo bzerrno($bz), PHP_EOL; // -1
echo bzerrstr($bz), PHP_EOL; // SEQUENCE_ERROR
bzclose($bz);
우리는 먼저 잘못된 환경을 구축했다."r"를 사용하여 파일을 열어 핸들을 얻은 후에 이 파일에 쓰기 작업을 합니다.bzerror () 는 오류 번호와 오류 정보 내용을 포함하는 오류 정보의 그룹을 되돌려줍니다.반면 bzerrno () 와 bzerrstr () 는 각각 오류 번호와 오류 내용을 되돌려줍니다.매우 간단하고 이해하기 쉬운 세 가지 함수.총결산
이 확장은 매우 간단하다. 가장 중요한 것은 Bzip2와 같은 압축 파일 형식도 매우 자주 사용하는 형식이 아니기 때문에 알 수 있는 사람이 많지 않다.그러나 우리는 그 중에서 약간의 놀라움을 발견했다. 바로 문자열의 코딩 함수를 제공했다. 이 두 함수는 확실히 일부 장면에서 정보 암호화의 수단으로 사용할 수 있다.
테스트 코드:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202006/source/PHP%E7%9A%84Bzip2%E5%8E%8B%E7%BC%A9%E6%89%A9%E5%B1%95%E5%B7%A5%E5%85%B7.php
참조 문서:
https://www.php.net/manual/zh/book.bzip2.php
이상은 PHP의 bz2 압축 확장 도구에 대한 상세한 내용입니다. php bz2 확장에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.