---
product: Chilkat
product_version: 11.7.0
language: phpx
language_label: PHP ActiveX
class: UnixCompress
license: bundle
deprecated: false
reference_html: https://www.chilkatsoft.com/refdoc/phpUnixCompressRef.html
---
# Chilkat UnixCompress — PHP ActiveX — v11.7.0

> Chilkat 11.7.0 · language=phpx · class=UnixCompress
> Other versions: replace `11.7.0` in this URL. Other languages: `https://www.chilkatsoft.com/ai-docs/v/11.7.0/<lang>/classes/UnixCompress.md`.
> Language-wide rules (install, unlock, error model, strings/bytes): `https://www.chilkatsoft.com/ai-docs/v/11.7.0/phpx/guide.md`.

## Purpose

**Compress, uncompress, and unpack legacy UNIX `.Z` files.**

`Chilkat.UnixCompress` provides UNIX `compress` and `uncompress` functionality for legacy `.Z` files. It supports file-based, memory-based, and string-based workflows, uses LZW compression, can unpack `.tar.Z` archives, and includes abort and progress-related support for longer-running operations.

**Compress to .Z**

Compress files, memory data, or strings into UNIX `.Z` format using LZW compression.

**Uncompress .Z data**

Expand UNIX-compressed data back to files, memory, byte arrays, or text depending on the application workflow.

**File workflows**

Compress and uncompress directly between input and output files when working with existing filesystem data.

**Memory workflows**

Work with compressed or uncompressed byte data in memory when temporary files are not desired.

**String workflows**

Compress and uncompress text using an explicit character set so string data round-trips correctly.

**Unpack tar.Z archives**

Use `UnTarZ` to decompress and extract legacy `.tar.Z` archives in a single workflow.

**Common pattern:** Use `UnixCompress` when the data is in classic UNIX `.Z` format or when a `.tar.Z` archive must be unpacked. Use `Chilkat.Gzip` for `.gz` and `.tar.gz` files, `Chilkat.Bz2` for `.bz2` files, and `Chilkat.Compression` for raw compression algorithms and general-purpose compression workflows.

For an extended overview, see [UnixCompress Class Overview](https://www.chilkatsoft.com/unixcompress_class_overview.asp).

## Object creation, unlocking and error handling

**Object Creation**

```php
Chilkat v10.0.0 or greater:
$obj = new COM("Chilkat.UnixCompress");
Chilkat v9.5.0.*:
$obj = new COM("Chilkat_9_5_0.UnixCompress");
```

Call `Global.UnlockBundle` once at the start of the program, before using this or any other Chilkat class. Any string unlocks a fully functional 30-day trial; a purchased unlock code is used in production. See `guide.md` for the exact code in PHP ActiveX.

How failure is reported depends on the method's return type and is stated in the note under each method below. In every case the diagnostic text is in the `LastErrorText` property of the object whose method was called.

## Members common to every Chilkat class

Documented once per language in `common-members.md`; listed here so this page is self-contained.

| Property | Signature | Access | Meaning |
|---|---|---|---|
| `DebugLogFilePath` | `string DebugLogFilePath` | read/write | If set to a file path, this property logs the LastErrorText of each Chilkat method or property call to the specified file. |
| `LastBinaryResult` | `VARIANT LastBinaryResult (read-only)` | read-only | This property is mainly used in SQL Server stored procedures to retrieve binary data from the last method call that returned binary data. |
| `LastErrorHtml` | `string LastErrorHtml (read-only)` | read-only | Provides HTML-formatted information about the last called method or property. |
| `LastErrorText` | `string LastErrorText (read-only)` | read-only | Provides plain text information about the last called method or property. |
| `LastErrorXml` | `string LastErrorXml (read-only)` | read-only | Provides XML-formatted information about the last called method or property. |
| `LastMethodSuccess` | `bool LastMethodSuccess` | read/write | Indicates the success or failure of the most recent method call: `true` means success, `false` means failure. |
| `LastStringResult` | `string LastStringResult (read-only)` | read-only | In SQL Server stored procedures, this property holds the string return value of the most recent method call that returns a string. |
| `LastStringResultLen` | `int LastStringResultLen (read-only)` | read-only | The length, in characters, of the string contained in the LastStringResult property. |
| `VerboseLogging` | `bool VerboseLogging` | read/write | If set to `true`, then the contents of LastErrorText (or LastErrorXml, or LastErrorHtml) may contain more verbose information. |
| `Version` | `string Version (read-only)` | read-only | Version of the component/library, such as "10.1.0" |

## Member index

| Member | Kind | Signature |
|---|---|---|
| `AbortCurrent` | property, read/write | `bool AbortCurrent` |
| `CompressFile` | method | `bool CompressFile(string inFilename, string destPath)` |
| `CompressFileToMem` | method | `VARIANT CompressFileToMem(string inFilename)` |
| `CompressMemory` | method | `VARIANT CompressMemory(VARIANT inData)` |
| `CompressMemToFile` | method | `bool CompressMemToFile(VARIANT inData, string destPath)` |
| `CompressString` | method | `VARIANT CompressString(string inStr, string charset)` |
| `CompressStringToFile` | method | `bool CompressStringToFile(string inStr, string charset, string destPath)` |
| `LoadTaskCaller` | method | `bool LoadTaskCaller(Chilkat.Task task)` |
| `ReadFile` | method | `VARIANT ReadFile(string filename)` |
| `UncompressFile` | method | `bool UncompressFile(string inFilename, string destPath)` |
| `UncompressFileToMem` | method | `VARIANT UncompressFileToMem(string inFilename)` |
| `UncompressFileToString` | method | `string UncompressFileToString(string zFilename, string charset)` |
| `UncompressMemory` | method | `VARIANT UncompressMemory(VARIANT inData)` |
| `UncompressMemToFile` | method | `bool UncompressMemToFile(VARIANT inData, string destPath)` |
| `UncompressString` | method | `string UncompressString(VARIANT inCompressedData, string charset)` |
| `UnTarZ` | method | `bool UnTarZ(string zFilename, string destDir, bool bNoAbsolute)` |
| `WriteFile` | method | `bool WriteFile(string filename, VARIANT binaryData)` |

## Properties

### UnixCompress.AbortCurrent

`Chilkat 11.7.0 · phpx · UnixCompress · AbortCurrent · property · read/write · since 9.5.0.58`

```php
bool AbortCurrent
```

When set to `true`, causes the currently running method to abort. Methods that always finish quickly (i.e.have no length file operations or network communications) are not affected. If no method is running, then this property is automatically reset to `false` when the next method is called. When the abort occurs, this property is reset to `false`. Both synchronous and asynchronous method calls can be aborted. (A synchronous method call could be aborted by setting this property from a separate thread.)

## Methods

### UnixCompress.CompressFile

`Chilkat 11.7.0 · phpx · UnixCompress · CompressFile · method`

```php
bool CompressFile(string inFilename, string destPath)
```

Compresses a file to create a UNIX compressed file (.Z). This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.

Returns true for success, false for failure.

Async variant: `CompressFileAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.CompressFileToMem

`Chilkat 11.7.0 · phpx · UnixCompress · CompressFileToMem · method`

```php
VARIANT CompressFileToMem(string inFilename)
```

Unix compresses a file to an in-memory image of a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns `null` on failure

Async variant: `CompressFileToMemAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.CompressMemory

`Chilkat 11.7.0 · phpx · UnixCompress · CompressMemory · method`

```php
VARIANT CompressMemory(VARIANT inData)
```

Compresses in-memory data to an in-memory image of a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns `null` on failure

### UnixCompress.CompressMemToFile

`Chilkat 11.7.0 · phpx · UnixCompress · CompressMemToFile · method`

```php
bool CompressMemToFile(VARIANT inData, string destPath)
```

Unix compresses and creates a .Z file from in-memory data. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns true for success, false for failure.

### UnixCompress.CompressString

`Chilkat 11.7.0 · phpx · UnixCompress · CompressString · method`

```php
VARIANT CompressString(string inStr, string charset)
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Compresses a string to an in-memory image of a .Z file. Prior to compression, the string is converted to the character encoding specified by `charset`. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns `null` on failure

### UnixCompress.CompressStringToFile

`Chilkat 11.7.0 · phpx · UnixCompress · CompressStringToFile · method`

```php
bool CompressStringToFile(string inStr, string charset, string destPath)
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Unix compresses and creates a .Z file from string data. The `charset` specifies the character encoding used for the byte representation of the characters when compressed. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns true for success, false for failure.

### UnixCompress.LoadTaskCaller

`Chilkat 11.7.0 · phpx · UnixCompress · LoadTaskCaller · method · since 9.5.0.80`

```php
bool LoadTaskCaller(Chilkat.Task task)
```

Loads the caller of the task's async method.

Returns true for success, false for failure.

### UnixCompress.ReadFile

`Chilkat 11.7.0 · phpx · UnixCompress · ReadFile · method`

```php
VARIANT ReadFile(string filename)
```

Convenience method to read an entire file and return as a byte array.

Returns `null` on failure

### UnixCompress.UncompressFile

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressFile · method`

```php
bool UncompressFile(string inFilename, string destPath)
```

Uncompresses a .Z file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns true for success, false for failure.

Async variant: `UncompressFileAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressFileToMem

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressFileToMem · method`

```php
VARIANT UncompressFileToMem(string inFilename)
```

Uncompresses a .Z file directly to memory. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns `null` on failure

Async variant: `UncompressFileToMemAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressFileToString

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressFileToString · method`

```php
string UncompressFileToString(string zFilename, string charset)
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Uncompresses a .Z file that contains a text file. The contents of the text file are returned as a string. The character encoding of the text file is specified by `charset`. Typical charsets are `iso-8859-1`, `utf-8`, `windows-1252`, `shift_JIS`, `big5`, etc.

Returns `null` on failure

Async variant: `UncompressFileToStringAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.UncompressMemory

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressMemory · method`

```php
VARIANT UncompressMemory(VARIANT inData)
```

Uncompresses from an in-memory image of a .Z file directly into memory. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns `null` on failure

### UnixCompress.UncompressMemToFile

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressMemToFile · method`

```php
bool UncompressMemToFile(VARIANT inData, string destPath)
```

Uncompresses from an in-memory image of a .Z file to a file. (This compression uses the LZW (Lempel-Ziv-Welch) compression algorithm.)

Returns true for success, false for failure.

### UnixCompress.UncompressString

`Chilkat 11.7.0 · phpx · UnixCompress · UncompressString · method`

```php
string UncompressString(VARIANT inCompressedData, string charset)
```

**Full documentation for this method (same in every language):** [List of Valid Charsets](https://www.chilkatsoft.com/ai-docs/v/11.7.0/articles/charsets_supported_by_chilkat.md)

Uncompresses from an in-memory image of a .Z file directly to a string. The `charset` specifies the character encoding used to interpret the bytes resulting from the decompression. The `charset` can be any one of a large number of character encodings, such as `utf-8`, `iso-8859-1`, `Windows-1252`, `ucs-2`, etc.

Returns `null` on failure

### UnixCompress.UnTarZ

`Chilkat 11.7.0 · phpx · UnixCompress · UnTarZ · method`

```php
bool UnTarZ(string zFilename, string destDir, bool bNoAbsolute)
```

Unpacks a .tar.Z file. The decompress and untar occur in streaming mode. There are no temporary files and the memory footprint is constant (and small) while untarring.

Returns true for success, false for failure.

Async variant: `UnTarZAsync` — same arguments, returns a `Task` (see Async variants below).

### UnixCompress.WriteFile

`Chilkat 11.7.0 · phpx · UnixCompress · WriteFile · method`

```php
bool WriteFile(string filename, VARIANT binaryData)
```

Convenience method for writing the contents of a byte array to a file.

Returns true for success, false for failure.

## Events and callbacks

This binding has no event callbacks. For progress, percent-done or cancellation use the `*Async` variant of a method and poll the returned `Task` (`PercentDone`, `Finished`, `Cancel`).

## Async variants

Each returns a `Task` instead of the result and takes the same arguments as the synchronous method; run the task, wait for `Finished`, then read the result from the task. No new Async methods are added from 11.7.0 on.

```php
Chilkat.Task CompressFileAsync(string inFilename, string destPath)
Chilkat.Task CompressFileToMemAsync(string inFilename)
Chilkat.Task UncompressFileAsync(string inFilename, string destPath)
Chilkat.Task UncompressFileToMemAsync(string inFilename)
Chilkat.Task UncompressFileToStringAsync(string zFilename, string charset)
Chilkat.Task UnTarZAsync(string zFilename, string destDir, bool bNoAbsolute)
```

## Related classes

[`Task`](https://www.chilkatsoft.com/ai-docs/v/11.7.0/phpx/classes/Task.md)

