WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Самая быстрая Тема-конструктор для WordPress
функция не описана

getid3_handler::saveAttachment() public WP 1.0

Это метод класса: getid3_handler{}

Хуков нет.

Возвращает

Строку/null.

Использование

$getid3_handler = new getid3_handler();
$getid3_handler->saveAttachment( $name, $offset, $length, $image_mime );
$name(строка) (обязательный)
$offset(число) (обязательный)
$length(число) (обязательный)
$image_mime(строка)

По умолчанию: null

Код getid3_handler::saveAttachment() WP 5.5.1

<?php
public function saveAttachment($name, $offset, $length, $image_mime=null) {
	try {

		// do not extract at all
		if ($this->getid3->option_save_attachments === getID3::ATTACHMENTS_NONE) {

			$attachment = null; // do not set any

		// extract to return array
		} elseif ($this->getid3->option_save_attachments === getID3::ATTACHMENTS_INLINE) {

			$this->fseek($offset);
			$attachment = $this->fread($length); // get whole data in one pass, till it is anyway stored in memory
			if ($attachment === false || strlen($attachment) != $length) {
				throw new Exception('failed to read attachment data');
			}

		// assume directory path is given
		} else {

			// set up destination path
			$dir = rtrim(str_replace(array('/', '\\'), DIRECTORY_SEPARATOR, $this->getid3->option_save_attachments), DIRECTORY_SEPARATOR);
			if (!is_dir($dir) || !getID3::is_writable($dir)) { // check supplied directory
				throw new Exception('supplied path ('.$dir.') does not exist, or is not writable');
			}
			$dest = $dir.DIRECTORY_SEPARATOR.$name.($image_mime ? '.'.getid3_lib::ImageExtFromMime($image_mime) : '');

			// create dest file
			if (($fp_dest = fopen($dest, 'wb')) == false) {
				throw new Exception('failed to create file '.$dest);
			}

			// copy data
			$this->fseek($offset);
			$buffersize = ($this->data_string_flag ? $length : $this->getid3->fread_buffer_size());
			$bytesleft = $length;
			while ($bytesleft > 0) {
				if (($buffer = $this->fread(min($buffersize, $bytesleft))) === false || ($byteswritten = fwrite($fp_dest, $buffer)) === false || ($byteswritten === 0)) {
					throw new Exception($buffer === false ? 'not enough data to read' : 'failed to write to destination file, may be not enough disk space');
				}
				$bytesleft -= $byteswritten;
			}

			fclose($fp_dest);
			$attachment = $dest;

		}

	} catch (Exception $e) {

		// close and remove dest file if created
		if (isset($fp_dest) && is_resource($fp_dest)) {
			fclose($fp_dest);
		}

		if (isset($dest) && file_exists($dest)) {
			unlink($dest);
		}

		// do not set any is case of error
		$attachment = null;
		$this->warning('Failed to extract attachment '.$name.': '.$e->getMessage());

	}

	// seek to the end of attachment
	$this->fseek($offset + $length);

	return $attachment;
}