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

getid3_lyrics3::Analyze() public WP 1.0

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

Хуков нет.

Возвращает

true/false.

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

$getid3_lyrics3 = new getid3_lyrics3();
$getid3_lyrics3->Analyze();

Код getid3_lyrics3::Analyze() WP 5.5.1

wp-includes/ID3/module.tag.lyrics3.php
<?php
public function Analyze() {
	$info = &$this->getid3->info;

	// http://www.volweb.cz/str/tags.htm

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

	$this->fseek((0 - 128 - 9 - 6), SEEK_END);          // end - ID3v1 - "LYRICSEND" - [Lyrics3size]
	$lyrics3_id3v1 = $this->fread(128 + 9 + 6);
	$lyrics3lsz    = (int) substr($lyrics3_id3v1, 0, 6); // Lyrics3size
	$lyrics3end    = substr($lyrics3_id3v1,  6,   9); // LYRICSEND or LYRICS200
	$id3v1tag      = substr($lyrics3_id3v1, 15, 128); // ID3v1

	if ($lyrics3end == 'LYRICSEND') {
		// Lyrics3v1, ID3v1, no APE

		$lyrics3size    = 5100;
		$lyrics3offset  = $info['filesize'] - 128 - $lyrics3size;
		$lyrics3version = 1;

	} elseif ($lyrics3end == 'LYRICS200') {
		// Lyrics3v2, ID3v1, no APE

		// LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
		$lyrics3size    = $lyrics3lsz + 6 + strlen('LYRICS200');
		$lyrics3offset  = $info['filesize'] - 128 - $lyrics3size;
		$lyrics3version = 2;

	} elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICSEND')) {
		// Lyrics3v1, no ID3v1, no APE

		$lyrics3size    = 5100;
		$lyrics3offset  = $info['filesize'] - $lyrics3size;
		$lyrics3version = 1;
		$lyrics3offset  = $info['filesize'] - $lyrics3size;

	} elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICS200')) {

		// Lyrics3v2, no ID3v1, no APE

		$lyrics3size    = (int) strrev(substr(strrev($lyrics3_id3v1), 9, 6)) + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
		$lyrics3offset  = $info['filesize'] - $lyrics3size;
		$lyrics3version = 2;

	} else {

		if (isset($info['ape']['tag_offset_start']) && ($info['ape']['tag_offset_start'] > 15)) {

			$this->fseek($info['ape']['tag_offset_start'] - 15);
			$lyrics3lsz = $this->fread(6);
			$lyrics3end = $this->fread(9);

			if ($lyrics3end == 'LYRICSEND') {
				// Lyrics3v1, APE, maybe ID3v1

				$lyrics3size    = 5100;
				$lyrics3offset  = $info['ape']['tag_offset_start'] - $lyrics3size;
				$info['avdataend'] = $lyrics3offset;
				$lyrics3version = 1;
				$this->warning('APE tag located after Lyrics3, will probably break Lyrics3 compatability');

			} elseif ($lyrics3end == 'LYRICS200') {
				// Lyrics3v2, APE, maybe ID3v1

				$lyrics3size    = $lyrics3lsz + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200'
				$lyrics3offset  = $info['ape']['tag_offset_start'] - $lyrics3size;
				$lyrics3version = 2;
				$this->warning('APE tag located after Lyrics3, will probably break Lyrics3 compatability');

			}

		}

	}

	if (isset($lyrics3offset) && isset($lyrics3version) && isset($lyrics3size)) {
		$info['avdataend'] = $lyrics3offset;
		$this->getLyrics3Data($lyrics3offset, $lyrics3version, $lyrics3size);

		if (!isset($info['ape'])) {
			if (isset($info['lyrics3']['tag_offset_start'])) {
				$GETID3_ERRORARRAY = &$info['warning'];
				getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.apetag.php', __FILE__, true);
				$getid3_temp = new getID3();
				$getid3_temp->openfile($this->getid3->filename, $this->getid3->info['filesize'], $this->getid3->fp);
				$getid3_apetag = new getid3_apetag($getid3_temp);
				$getid3_apetag->overrideendoffset = $info['lyrics3']['tag_offset_start'];
				$getid3_apetag->Analyze();
				if (!empty($getid3_temp->info['ape'])) {
					$info['ape'] = $getid3_temp->info['ape'];
				}
				if (!empty($getid3_temp->info['replay_gain'])) {
					$info['replay_gain'] = $getid3_temp->info['replay_gain'];
				}
				unset($getid3_temp, $getid3_apetag);
			} else {
				$this->warning('Lyrics3 and APE tags appear to have become entangled (most likely due to updating the APE tags with a non-Lyrics3-aware tagger)');
			}
		}

	}

	return true;
}