PHP Extension providing XZ (LZMA2) compression/decompression functions.
This module requires liblzma-dev
(https://tukaani.org/xz/) as well as php7-dev or php8-dev.
If you are using Ubuntu, you can easily install all of them by typing the following command in your terminal:
sudo apt-get install git php7.4-dev liblzma-dev
To build and install as module, perform the following steps:
git clone https://github.com/codemasher/php-ext-xz.git
cd php-ext-xz
phpize
./configure
make
sudo make install
Do not forget to add extension = xz.so
to your php.ini
.
Follow the steps under ""Build your own PHP on Windows" to setup your build environment.
Before the compilation step, clone this repository to [...]\php-src\ext\xz
and proceed.
git clone https://github.com/Microsoft/php-sdk-binary-tools.git c:\php-sdk
cd c:\php-sdk
phpsdk-vs16-x64.bat
Run the buildtree script and check out the php source:
phpsdk_buildtree php-8.0
git clone https://github.com/php/php-src.git
cd php-src
git checkout PHP-8.0
Clone the xz extension and run the build:
git clone https://github.com/codemasher/php-ext-xz .\ext\xz
phpsdk_deps -u
buildconf --force
configure --disable-all --enable-cli --enable-xz
nmake snap
$fh = xzopen('/tmp/test.xz', 'w');
xzwrite($fh, 'Data you would like compressed and written.');
xzclose($fh);
$fh = xzopen('/tmp/test.xz', 'r');
xzpassthru($fh);
xzclose($fh);
$str = 'Data you would like compressed.';
$encoded = xzencode($str);
$decoded = xzdecode($encoded);
May or may not contain bugs. Use at your own risk.