/** * Gets the current Phing version based on VERSION.TXT file. * * @throws ConfigurationException * * @return string */ public static function getPhingVersion() { $path = dirname(dirname(dirname(__FILE__))); $gitInformation = self::getGitInformation($path); if ($gitInformation) { return "Phing " . $gitInformation; } $versionPath = self::getResourcePath("phing/etc/VERSION.TXT"); if ($versionPath === null) { $versionPath = self::getResourcePath("etc/VERSION.TXT"); } if ($versionPath === null) { throw new ConfigurationException("No VERSION.TXT file found; try setting phing.home environment variable."); } try { // try to read file $file = new PhingFile($versionPath); $reader = new FileReader($file); $phingVersion = trim($reader->read()); } catch (IOException $iox) { throw new ConfigurationException("Can't read version information file"); } return "Phing " . $phingVersion; }
function loadFromStream($filename) { $buffers = new StringBuffer(); $file = NULL; if (File::validClass($filename)) { $file = $filename; } else { $file = new File($filename); } $filereader = new FileReader($file); while ($c = $filereader->read()) { $buffers->append($c); } $this->str = $buffers->toString(); }
} } class INIFileReader { public function read($filePath) { return fopen($filePath, 'r'); } } class FileReader { public function read($filePath) { $extension = substr($filePath, -3); switch ($extension) { case 'ini': $reader = new INIFileReader(); break; case 'xml': $reader = new XMLFileReader(); break; default: return false; break; } return $reader->read($filePath); } } $reader = new FileReader(); $reader->read("test.ini"); $reader = new INIFileReader();
/** * Reading a file. * * @param PhingFile $file The file to read * @return string * @access protected **/ protected function _readFile(PhingFile $file) { $input = new FileReader($file); $buffer = $input->read(); $input->close(); return $buffer; }
<td bgcolor=#ffffff> <br> <br> <?php if ($source) { highlight_string(implode('', file(__FILE__))); exit; } ?> <strong>Loading properties file from :</strong> ./config.conf <br> <br> Display <strong>config.conf</strong> content : <dl><dd> <?php $reader = new FileReader('config.conf'); if ($reader->ready()) { while (($line = $reader->read()) != '') { if ($line == "\n" || $line == "\r\n") { print "<br>\n"; } else { print htmlentities($line); } } } ?> </dl> </td> </tr> </table>
/** * @param IFile $file The source file to copy from. * @return bool TRUE if the file has been successfully copied from $file, FALSE if an error occured * Note: An exception is raised if an important error is detected (the copy of a single file failed), * but during a folder copy, a failure during the copy of a single "sub-file" is ignored and no * exception is raised. * Nevertheless, you can check if the copy was a full success by testing the returned value. * @throws EyeIOException * @throws EyeFileNotFoundException */ protected function copyFrom(IFile $file, $overwrite = true) { if ($this->isDirectory() && (!$file->isDirectory() || $this->getName() != $file->getName())) { if ($this->getName() != '/' || $file->getName() != '/') { return $this->getChildFile($file->getName())->copyFrom($file, $overwrite); } } if ($this->exists() && !$overwrite) { throw new EyeIOException($this->path . '" exists and can\'t be overwritten.'); } //FILE or LINK if ($file->isFile() || $file->isLink()) { $srcPath = AdvancedPathLib::getPhpLocalHackPath($file->getPath()); $destPath = AdvancedPathLib::getPhpLocalHackPath($this->path); // First, let's try with the function provided by PHP, but only working with // a very restricted range of filesystems if (copy($srcPath, $destPath)) { return true; } if (!$this->exists() && !$this->createNewFile(true)) { throw new EyeIOException('Unable to create destination file ' . $this->path . '.'); } try { $fileWriter = new FileWriter($this->getOutputStream()); $fileReader = new FileReader($file->getInputStream()); $buffer = null; while ($fileReader->read($buffer) !== 0) { $fileWriter->write($buffer); } $fileReader->close(); $fileWriter->close(); return true; } catch (Exception $e) { if (is_object($fileReader)) { $fileReader->close(); } if (is_object($fileWriter)) { $fileWriter->close(); } throw new EyeIOException('Unable to transfer files contents ' . $file->getPath() . ' => ' . $this->path . '.', 0, $e); } } elseif ($file->isDirectory()) { if ($this->isDirectory() || $this->mkdirs()) { $success = true; foreach ($file->listFiles() as $subFile) { try { if (!$subFile->copyTo($this)) { $success = false; } } catch (Exception $e) { $success = false; } } return $success; } else { throw new EyeIOException('Unable to create destination directory ' . $this->path . '.'); } } else { throw new EyeFileNotFoundException($file->getPath() . ' does not exist.'); } }
/** * @TODO */ public function fromRoute($route) { // $this->route = $route; // Find the files that match the route. $finder = new \Symfony\Component\Finder\Finder(); $glob = '#^default\\.(?:md|markdown|textile|html|htm|txt)$#'; if ($route !== '') { $glob = '#^(?:\\d\\d\\.)?' . implode('\\/(?:\\d\\d\\.)?', explode('/', $route)) . '(?:\\/default)?\\.(?:md|markdown|textile|html|htm|txt)' . '$#'; } $finder->in($this->documentPath)->path($glob); $files = []; foreach ($finder as $file) { $files[] = $file->getRelativePathname(); } // Work out if we have *any* matching documents. If not, throw an // exception. if (empty($files)) { throw new Exceptions\NoCandidatesException($route); } // Sort functions. $indexSort = function ($a, $b) { // return 0; return $a > $b; }; $extensionSort = function ($a, $b) { $allowedExtensions = explode('|', 'md|markdown|textile|html|htm|txt'); $aExt = pathinfo($a, PATHINFO_EXTENSION); $bExt = pathinfo($b, PATHINFO_EXTENSION); $aExtPos = array_search($aExt, $allowedExtensions); $bExtPos = array_search($bExt, $allowedExtensions); return $aExtPos > $bExtPos; }; $isDefaultSort = function ($a, $b) { $aHasDefault = strpos($a, 'default.'); $bHasDefault = strpos($b, 'default.'); return $aHasDefault < $bHasDefault; }; // Sort the documents according to their priority. $complexSort = \pjdietz\ComplexSort\ComplexSort::makeComplexSortFunction([$indexSort, $extensionSort, $isDefaultSort]); usort($files, $complexSort); // Read the file content from the filesystem. $fileReader = new FileReader(new \League\Flysystem\Filesystem(new \League\Flysystem\Adapter\Local($this->documentPath))); $filepath = $files[0]; $content = $fileReader->read($filepath); // Create a document from the file content. $document = new Document($content); $document->filepath = $filepath; $document->parse(); return $document; }
public function testWriteInNotExistingFile() { $filePath = __DIR__ . '/resources/none.txt'; $dummyFileReader = new FileReader($filePath); $this->assertSame('', $dummyFileReader->read()); $this->assertSame(3, $dummyFileReader->write('abc')); $this->assertSame('abc', $dummyFileReader->read()); $this->assertSame(3, $dummyFileReader->write('def')); $this->assertSame('def', $dummyFileReader->read()); unlink($filePath); }