The problem is caused by differences in the way PHP 5.2.x parses code, and can be fixed by manually patching the listContent function in PEAR’s Archive_Tar package.

The fix is to track down the /usr/local/lib/php/Archive/Tar.php and/or /usr/lib/php/Archive/Tar.php files and change the following removing the line marked ‘-‘ and adding the lines marked ‘+’…

Code:
    function listContent()
    {
        $v_list_detail = array();

        if ($this->_openRead()) {
+            $r = $this->_extractList('', $v_list_detail, "list", '', '');
+            if (!$r) {
-           if (!$this->_extractList('', $v_list_detail, "list", '', '')) {
                unset($v_list_detail);
                $v_list_detail = 0;
            }
            $this->_close();
        }

        return $v_list_detail;
    }