File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/translate/lib/io/file.php
Back
<?php declare(strict_types = 1); namespace Bitrix\Translate\IO; use Bitrix\Translate; use Bitrix\Main; class File extends Main\IO\File implements Translate\IErrorable { // trait implements interface Translate\IErrorable use Translate\Error; /** * Creates temporal file. * * @param string $prefix Name prefix. * @param string $suffix Name suffix. * @param int $timeToLive Hours to keep files alive. * * @return static */ public static function generateTemporalFile(string $prefix, string $suffix = '.tmp', int $timeToLive = 3): self { $tempDir = \CTempFile::GetDirectoryName($timeToLive, array($prefix, uniqid($prefix, true))); Path::checkCreatePath($tempDir.'/'); $hash = str_pad(dechex(crc32($tempDir)), 8, '0', STR_PAD_LEFT); $fileName = uniqid($hash. '_', false). $suffix; return new static($tempDir. $fileName); } /** * Opens file for reading. * * @return bool */ public function openLoad(): bool { if ($this->isExists()) { $this->open(Main\IO\FileStreamOpenMode::READ); } return $this->isExists() && $this->isReadable(); } /** * Opens file for writing. * * @return bool */ public function openWrite(): bool { $this->open(Main\IO\FileStreamOpenMode::WRITE); return $this->isWritable(); } /** * Read file. * * @param int $length Amount bytes to read. * * @return string */ public function read(int $length): string { if (feof($this->filePointer)) { return ''; } return fread($this->filePointer, $length); } /** * Write file. * * @param string $content Data to write. * * @return int * @throws Main\IO\FileNotOpenedException * @throws Main\IO\IoException */ public function write(string $content): int { if (!is_resource($this->filePointer)) { throw new Main\IO\FileNotOpenedException($this->getPath()); } $length = fwrite($this->filePointer, $content); if ($length === false) { throw new Main\IO\IoException("Cannot write file"); } return $length; } /** * Closes the file. * * @return void * @throws Main\IO\FileNotOpenedException */ public function close(): void { if (!is_resource($this->filePointer)) { @fflush($this->filePointer); } parent::close(); @clearstatcache(true, $this->getPhysicalPath()); } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.29 |
proxy
|
phpinfo
|
Settings