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;
}

Thanks for this, great information!
Helped me out in a Jam.