> * endobj */ Class PDFMetaData{ private $keys=array( 'Subject', 'Author', 'Creator', 'Keywords', 'Producer', 'ModDate', 'Title' ); var $objects="/<<(.*)>>/"; var $items='/\/([A-Z][A-Za-z].*)\((.*)\)/'; function getMeta($file){ if($data = @file_get_contents($file)){ return $this->extractMeta($data); } } function extractMeta($data){ $meta = array(); // objects $objects=array(); preg_match_all('/<<(.*)>>/',$data,$objects); $objects=end($objects); // iterate matches foreach($objects as $object){ $items=array(); preg_match_all('/\/(?P[A-Z][A-Za-z]*)\((?P[^)\/]*)\)/',$data,$items); foreach($items['key'] as $index=>$key){ if(in_array($key, $this->keys)){ $meta[$key]=$items['value'][$index]; } // if we have all keys, we can stop parsing if(count($this->keys)==count($meta)) break 2; } } return $meta; } } ?>