+++ /dev/null
-<?php
-/**
-* File handling functions in phpdoc.
-*
-* @version $Id $
-* @author Ulf Wendel <ulf@redsys.de>
-*/
-class PhpdocFileHandler extends PhpdocObject {
-
- /**
- * Filepath. The path is automatically added in front of all filenames
- *
- * @var string $path
- * @see setFilePath()
- */
- var $path = "";
-
- /**
- * Reads a list of files or one file.
- *
- * @param mixed Filename or an array filenames, $k => $filename
- * @throws PhpdocError
- * @access public
- */
- function get($files) {
- if ("" == $files) {
- $this->err[] = new PhpdocError("No files specified.", __FILE__, __LINE__);
- return array("", "");
- }
-
- if (!is_array($files))
- $files = array($files);
-
- $contents = array();
- $together = "";
-
- reset($files);
- while (list($k, $filename) = each($files))
- $contents[$filename] = $this->getFile($filename);
-
- return $contents;
- } // end func get
-
- /**
- * Sets the filepath. The path is automatically added in front of all filenames
- *
- * @param string $path
- * @return bool $ok
- * @access public
- */
- function setFilePath($path) {
- $this->path = $path;
- } // end func setFilePath
-
- /**
- * Reads a file.
- *
- * @param string $filename
- * @return string $content
- * @throws PhpdocError
- */
- function getFile($filename) {
- if ("" == $filename) {
- $this->err[] = new PhpdocError("getFile(), no filename specified.", __FILE__, __LINE__);
- return "";
- }
- if (!file_exists($filename)) {
- $this->err[] = new PhpdocError("getFile(), unknown file '$filename'.", __FILE__, __LINE__);
- return "";
- }
- if (!$fh = @fopen($filename, "r")) {
- $this->err[] = new PhpdocError("getFile(), can't open file '$filename' for reading.", __FILE__, __LINE__);
- return "";
- }
-
- $content = fread($fh, filesize($filename));
- fclose($fh);
-
- return $content;
- } // end func getFile
-
- /**
- * Appends a string to a file.
- *
- * @param string Filename
- * @param string Content to append
- * @param string Directory prefix
- * @throw PHPDocError
- * @return boolean
- * @todo ... add a function boldy.
- */
- function appendToFile($filename, $content, $directory = "") {
- if ("" == $filename || "" == $content) {
- $this->err[] = new PhpdocError("No filename and/or no content given.", __FILE__, __LINE__);
- return false;
- }
-
- $fh = @fopen($filename, "a");
- if (!$fh) {
- print $filename;
- return false;
- }
-
- fwrite($fh, $content);
- fclose($fh);
-
- return true;
- } // end func appendToFile
-
- /**
- * Creates a new file.
- *
- * Create or overrides a file in a specified directory. If the
- * directory does not exists, it attempts to create it.
- *
- * @param string
- * @param string
- * @param string
- * @throws PHPDocError
- * @return boolean
- */
- function createFile($filename, $content, $directory = "") {
- if ("" == $filename || "" == $content) {
- $this->err[] = new PhpdocError("No filename or no content given.", __FILE__, __LINE__);
- return false;
- }
-
- $fh = @fopen($filename, "w");
- if (!$fh) {
- $this->err[] = new PhpdocError("Can't create file '$filename'.", __FILE__, __LINE__);
- return false;
- }
-
- fwrite($fh, $content);
- fclose($fh);
-
- return true;
- } // end func createFile
-
- /**
- * Returns a list of files in a specified directory
- *
- * @param string $directory
- * @param mixed $suffix Suffix of the files returned
- * @param boolean $flag_subdir include subdirectories?
- * @param array $files New entries are added to this variable if provided.
- * Used only for the subdir feature.
- * @return array $files
- * @throws PhpdocError
- */
- function getFilesInDirectory($directory, $suffix = "", $flag_subdir = true, $files = "") {
- if ("" == $directory) {
- $this->err[] = new PhpdocError("No directory specified", __FILE__, __LINE__);
- return array();
- }
-
- if ("/" != substr($directory, -1))
- $directory .= "/";
-
- if ("" == $suffix)
- $flag_all = true;
- else {
-
- $flag_all = false;
- $allowed = array();
-
- if (!is_array($suffix))
- $suffix = array($suffix);
-
- reset($suffix);
- while (list($k, $v) = each($suffix))
- $allowed[".$v"] = true;
-
- }
-
- if (!is_array($files))
- $files = array();
-
- $dh = @opendir($directory);
- if (!$dh) {
- $this->err[] = new PhpdocError("Can't open '$directory' for reading.", __FILE__, __LINE__);
- return array();
- }
-
- while ($file = readdir($dh)) {
- if ("." == $file || ".." == $file)
- continue;
-
- if ($flag_subdir && is_dir($directory.$file))
- $files = $this->getFilesInDirectory($directory.$file, $suffix, true, $files);
-
- if (!is_file($directory.$file))
- continue;
-
- if ($flag_all) {
- $files[] = $file;
- } else {
- if (isset($allowed[substr($file, strrpos($file, "."))]))
- $files[] = $directory.$file;
- }
-
- }
- closedir($dh);
-
- return $files;
- } // end fun getFilesInDirectory
-
-} // end class PhpdocFileHandler
-?>
\ No newline at end of file