wppaste
WordPress

getid3_lyrics3

Source
wp-includes/ID3/module.tag.lyrics3.php:20

Compatibility

WordPress
core
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Methods · 5

Source code

class getid3_lyrics3 extends getid3_handler{	/**	 * @return bool	 */	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]		$lyrics3offset = null;		$lyrics3version = null;		$lyrics3size   = null;		$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');

Changelog

Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/ID3/module.tag.lyrics3.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.