CreateFreshExpiryDataFile - v2


11/10/04
 

CreateFreshExpiryDataFile - v2

Given the XML file format I've decided on, the CreateFreshExpiryDataFile function needs to output a bit more than just the date. Given the problem I encountered using touch, instead I'm going to assume that ExpiryData.xml already exists.
 
function CreateExpiryDataFile() {

  // open ExpiryData file ("r+" for read/write)
  $ExpiryDataFile = "ExpiryData.xml";
  $ExpiryData_fp = fopen($ExpiryDataFile, "r+");

  // lock ExpiryData file ("2" for exclusive writing lock)
  $lock = flock($ExpiryData_fp, 2);

  // continue when lock is obtained
  if ( $lock) {

    // truncate to empty the file
    ftruncate($ExpiryData_fp, 0);

    // write contents to create a properly formatted file
    fwrite($ExpiryData_fp, "<?xml version=\"1.0\"?>");
    fwrite($ExpiryData_fp, "\n");
    fwrite($ExpiryData_fp, "<?xml-stylesheet");
    fwrite($ExpiryData_fp, " href=\"ExpiryData.css\"");
    fwrite($ExpiryData_fp, " type=\"text/css\"?>");
    fwrite($ExpiryData_fp, "\n");
    fwrite($ExpiryData_fp, "<expiredpages>");
    fwrite($ExpiryData_fp, "\n\n");
    fwrite($ExpiryData_fp, "<date>");
    fwrite($ExpiryData_fp, date("Y-m-d"));
    fwrite($ExpiryData_fp, "</date>");
    fwrite($ExpiryData_fp, "\n\n");
    fwrite($ExpiryData_fp, "</expiredpages>");

  }

  // unlock and close reminders file ("3" is for unlock)
  $lock = flock($ExpiryData_fp, 3);
  fclose($ExpiryData_fp);

}

 

This creates the following...
 
<?xml version="1.0"?>
<?xml-stylesheet href="ExpiryData.css" type="text/css"?>
<expiredpages>

<date>2004-10-12</date>

</expiredpages>
 

 
 

<<contents ^top^