I'm having some difficulty with ZipArchive functions in PHP.

In this code, I am getting an error value of 1 which is, for some reason not found in the zipFileErrMsg function.
The file DOES exist in the path passed to the ZipArchive->open() function.

I'm not sure what is going on as this is essentially the same code that I use in another script that works like a charm.

And another thing, I cannot run this script on WAMPServer 2.0 because the version of PHP installed doesn't have
php_zip.dll. Any ideas on how to remedy that?

Can you guys see anything I may be doing wrong?

<?php

function zipFileErrMsg($errno) {
  // using constant name as a string to make this function PHP4 compatible
  $zipFileFunctionsErrors = array(
    'ZIPARCHIVE::ER_MULTIDISK' => 'Multi-disk zip archives not supported.',
    'ZIPARCHIVE::ER_RENAME' => 'Renaming temporary file failed.',
    'ZIPARCHIVE::ER_CLOSE' => 'Closing zip archive failed',
    'ZIPARCHIVE::ER_SEEK' => 'Seek error',
    'ZIPARCHIVE::ER_READ' => 'Read error',
    'ZIPARCHIVE::ER_WRITE' => 'Write error',
    'ZIPARCHIVE::ER_CRC' => 'CRC error',
    'ZIPARCHIVE::ER_ZIPCLOSED' => 'Containing zip archive was closed',
    'ZIPARCHIVE::ER_NOENT' => 'No such file.',
    'ZIPARCHIVE::ER_EXISTS' => 'File already exists',
    'ZIPARCHIVE::ER_OPEN' => 'Can\'t open file',
    'ZIPARCHIVE::ER_TMPOPEN' => 'Failure to create temporary file.',
    'ZIPARCHIVE::ER_ZLIB' => 'Zlib error',
    'ZIPARCHIVE::ER_MEMORY' => 'Memory allocation failure',
    'ZIPARCHIVE::ER_CHANGED' => 'Entry has been changed',
    'ZIPARCHIVE::ER_COMPNOTSUPP' => 'Compression method not supported.',
    'ZIPARCHIVE::ER_EOF' => 'Premature EOF',
    'ZIPARCHIVE::ER_INVAL' => 'Invalid argument',
    'ZIPARCHIVE::ER_NOZIP' => 'Not a zip archive',
    'ZIPARCHIVE::ER_INTERNAL' => 'Internal error',
    'ZIPARCHIVE::ER_INCONS' => 'Zip archive inconsistent',
    'ZIPARCHIVE::ER_REMOVE' => 'Can\'t remove file',
    'ZIPARCHIVE::ER_DELETED' => 'Entry has been deleted',
  );
  $errmsg = 'unknown';
  foreach ($zipFileFunctionsErrors as $constName => $errorMessage) {
    if (defined($constName) and constant($constName) === $errno) {
      return 'Zip File Function error: '.$errorMessage;
    }
  }
  return 'Zip File Function error: unknown';
}

require_once "libs/Core_cron.php";
set_time_limit(0);

$user = new User;
$inv = new Inventory;

// This loads a list of records from a table into the $files array
$files = $inv->loadImportFiles();

if(count($files) <= 0)
{
  echo "NO FILES TO IMPORT"."<br>";
  exit;
}
foreach($files as $key=>$file)
{
  $file_temp = $file['file_name'];
  $file['file_name'] = 'file_uploads/'.$file['file_name'];
  $path_parts = pathinfo($file['file_name']);
  $user_id = $file['user_id'];
  if(strtolower($path_parts['extension']) == 'zip') {
    echo "PROCESSING ZIP FILE: ".$file['file_name']."<br>";

// this shows the correct filename and it does exist in the path.
echo "FileName: ".$file['file_name']."<br>";

$zip = new ZipArchive();
$res = $zip->open($file['file_name']);
if (is_resource($res)) {
  // Only one file in the zip
  $zippedfile = $zip->statIndex(0);
  $path_parts = pathinfo($zippedfile['name']);

  echo "UNZIPPING FILE: ".$zippedfile['name']."<br>";
  $zip->extractTo('file_uploads/', $zippedfile['name']);
  $zip->close();      
  // delete the zip file
  unlink($file['file_name']);     

  // rename the file to include the user_id and date marker in the filename
  $filename = 'file_uploads/'.$user_id.'_'.$path_parts['filename'].'_'.date('m_d_Y').'.'.$path_parts['extension'];
  rename('file_uploads/'.$zippedfile['name'], $filename);

  // Remove the double line feeds, if any in the file
  $filestr = preg_replace('`[\r\n]+`',"\n", file_get_contents($filename));
  $fp = fopen($filename, "w+");
  fwrite($fp, $filestr);
  fclose($fp);                       
  $file['file_name'] = $filename;
} else {
  // returning "1:Zip File Function error: unknown"
  die($res.":".zipFileErrMsg($res));
}
  }
  /* Dont want to do this until I get the file unzipped.
  // import the file
  if($inv->importFile($file['user_id'], $file['file_name'], $file['file_id'], null, true))
  { 
    echo "DONE IMPORTING FILE: ".$file['file_name']."<br>";
  }
  */
}
?>

    Ok, I took some of the code on how to handle the zip file from the PHP docs.

    However, this is where the problem was happening:

    if (is_resource($res)) {
    

    It just needed to be like this:

    if ($res ===TRUE) {
    
      Write a Reply...