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

getid3_lyrics3::getLyrics3Data() public WP 1.0

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

Хуков нет.

Возвращает

true/false.

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

$getid3_lyrics3 = new getid3_lyrics3();
$getid3_lyrics3->getLyrics3Data( $endoffset, $version, $length );
$endoffset(число) (обязательный)
$version(число) (обязательный)
$length(число) (обязательный)

Код getid3_lyrics3::getLyrics3Data() WP 5.5.1

wp-includes/ID3/module.tag.lyrics3.php
<?php
public function getLyrics3Data($endoffset, $version, $length) {
	// http://www.volweb.cz/str/tags.htm

	$info = &$this->getid3->info;

	if (!getid3_lib::intValueSupported($endoffset)) {
		$this->warning('Unable to check for Lyrics3 because file is larger than '.round(PHP_INT_MAX / 1073741824).'GB');
		return false;
	}

	$this->fseek($endoffset);
	if ($length <= 0) {
		return false;
	}
	$rawdata = $this->fread($length);

	$ParsedLyrics3 = array();

	$ParsedLyrics3['raw']['lyrics3version'] = $version;
	$ParsedLyrics3['raw']['lyrics3tagsize'] = $length;
	$ParsedLyrics3['tag_offset_start']      = $endoffset;
	$ParsedLyrics3['tag_offset_end']        = $endoffset + $length - 1;

	if (substr($rawdata, 0, 11) != 'LYRICSBEGIN') {
		if (strpos($rawdata, 'LYRICSBEGIN') !== false) {

			$this->warning('"LYRICSBEGIN" expected at '.$endoffset.' but actually found at '.($endoffset + strpos($rawdata, 'LYRICSBEGIN')).' - this is invalid for Lyrics3 v'.$version);
			$info['avdataend'] = $endoffset + strpos($rawdata, 'LYRICSBEGIN');
			$rawdata = substr($rawdata, strpos($rawdata, 'LYRICSBEGIN'));
			$length = strlen($rawdata);
			$ParsedLyrics3['tag_offset_start'] = $info['avdataend'];
			$ParsedLyrics3['raw']['lyrics3tagsize'] = $length;

		} else {

			$this->error('"LYRICSBEGIN" expected at '.$endoffset.' but found "'.substr($rawdata, 0, 11).'" instead');
			return false;

		}

	}

	switch ($version) {

		case 1:
			if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICSEND') {
				$ParsedLyrics3['raw']['LYR'] = trim(substr($rawdata, 11, strlen($rawdata) - 11 - 9));
				$this->Lyrics3LyricsTimestampParse($ParsedLyrics3);
			} else {
				$this->error('"LYRICSEND" expected at '.($this->ftell() - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead');
				return false;
			}
			break;

		case 2:
			if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICS200') {
				$ParsedLyrics3['raw']['unparsed'] = substr($rawdata, 11, strlen($rawdata) - 11 - 9 - 6); // LYRICSBEGIN + LYRICS200 + LSZ
				$rawdata = $ParsedLyrics3['raw']['unparsed'];
				while (strlen($rawdata) > 0) {
					$fieldname = substr($rawdata, 0, 3);
					$fieldsize = (int) substr($rawdata, 3, 5);
					$ParsedLyrics3['raw'][$fieldname] = substr($rawdata, 8, $fieldsize);
					$rawdata = substr($rawdata, 3 + 5 + $fieldsize);
				}

				if (isset($ParsedLyrics3['raw']['IND'])) {
					$i = 0;
					$flagnames = array('lyrics', 'timestamps', 'inhibitrandom');
					foreach ($flagnames as $flagname) {
						if (strlen($ParsedLyrics3['raw']['IND']) > $i++) {
							$ParsedLyrics3['flags'][$flagname] = $this->IntString2Bool(substr($ParsedLyrics3['raw']['IND'], $i, 1 - 1));
						}
					}
				}

				$fieldnametranslation = array('ETT'=>'title', 'EAR'=>'artist', 'EAL'=>'album', 'INF'=>'comment', 'AUT'=>'author');
				foreach ($fieldnametranslation as $key => $value) {
					if (isset($ParsedLyrics3['raw'][$key])) {
						$ParsedLyrics3['comments'][$value][] = trim($ParsedLyrics3['raw'][$key]);
					}
				}

				if (isset($ParsedLyrics3['raw']['IMG'])) {
					$imagestrings = explode("\r\n", $ParsedLyrics3['raw']['IMG']);
					foreach ($imagestrings as $key => $imagestring) {
						if (strpos($imagestring, '||') !== false) {
							$imagearray = explode('||', $imagestring);
							$ParsedLyrics3['images'][$key]['filename']     =                                (isset($imagearray[0]) ? $imagearray[0] : '');
							$ParsedLyrics3['images'][$key]['description']  =                                (isset($imagearray[1]) ? $imagearray[1] : '');
							$ParsedLyrics3['images'][$key]['timestamp']    = $this->Lyrics3Timestamp2Seconds(isset($imagearray[2]) ? $imagearray[2] : '');
						}
					}
				}
				if (isset($ParsedLyrics3['raw']['LYR'])) {
					$this->Lyrics3LyricsTimestampParse($ParsedLyrics3);
				}
			} else {
				$this->error('"LYRICS200" expected at '.($this->ftell() - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead');
				return false;
			}
			break;

		default:
			$this->error('Cannot process Lyrics3 version '.$version.' (only v1 and v2)');
			return false;
	}


	if (isset($info['id3v1']['tag_offset_start']) && ($info['id3v1']['tag_offset_start'] <= $ParsedLyrics3['tag_offset_end'])) {
		$this->warning('ID3v1 tag information ignored since it appears to be a false synch in Lyrics3 tag data');
		unset($info['id3v1']);
		foreach ($info['warning'] as $key => $value) {
			if ($value == 'Some ID3v1 fields do not use NULL characters for padding') {
				unset($info['warning'][$key]);
				sort($info['warning']);
				break;
			}
		}
	}

	$info['lyrics3'] = $ParsedLyrics3;

	return true;
}