PHP의 bz2 압축 확장 도구 설명

3865 단어 phpbz2확장
일상적인 개발과 컴퓨터 사용에서 우리는 압축과 압축 해제의 일부 도구를 자주 접하고 PHP도 우리에게 관련 조작 확장 패키지를 많이 준비했다. 모두 직접 사용할 수 있는 함수로 압축 해제 기능을 편리하게 조작할 수 있다.

설치 확장


이 확장된 설치는 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 확장에 대한 더 많은 자료는 저희 다른 관련 글을 주목해 주십시오!

좋은 웹페이지 즐겨찾기