| 
<?php/**
 * examples 3
 *
 * using the callback function to add a new file attribute
 */
 
 // ----------- initialise ------------
 require_once('pfpFileTree.inc.php');
 
 $src='/var/www/html';
 
 $t=new pfpFileTree($src);
 
 $t->addCallBack('dummyCallBack');
 $t->addCallBack('getMimeType');   // NB we can add multiple callbacks
 $t->delCallBack('dummyCallBack'); // ... and remove them
 
 $t->readTree(array('size'=>'>10000','mimetype'=>'!text/html'));
 
 $t->ls();
 
 function getMimeType($file)
 {
 global $t;
 $attribute='mimetype';
 // note that if we want to manipulate $t->data here
 // $file is a canonical path - but we need the path
 // relative to the baseDir to find the right array
 // entry...
 $effPath = substr($file, strlen($t->baseDir));
 if (@array_key_exists($attribute, $t->data[$effPath])) {
 // already populated - return the current value
 return array($attribute=>$t->data[$effPath][$attribute]);
 } else {
 // NB mime_content_type() is deprecated
 return array($attribute=>mime_content_type($file));
 }
 }
 
 function dummyCallBack($file)
 {
 print "this code is never called";
 // but the following would be valid...
 return array('dummy'=>true, 'backwards'=>strrev($file));
 }
 
 
 
 |