WordPress.org

Make WordPress Core


Ignore:
Timestamp:
07/02/2020 03:46:17 PM (7 months ago)
Author:
desrosj
Message:

External Libraries: Update getID3 to version 1.9.20.

A full list of changes in this update can be found on GitHub: https://github.com/JamesHeinrich/getID3/compare/v1.9.19...v1.9.20.

Props hareesh-pillai, desrosj.
Previously [47601-47604].
Fixes #49945.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/ID3/getid3.lib.php

    r47737 r48278  
    682682    public static function array_max($arraydata, $returnkey=false) {
    683683        $maxvalue = false;
    684         $maxkey = false;
     684        $maxkey   = false;
    685685        foreach ($arraydata as $key => $value) {
    686686            if (!is_array($value)) {
    687                 if ($value > $maxvalue) {
     687                if (($maxvalue === false) || ($value > $maxvalue)) {
    688688                    $maxvalue = $value;
    689689                    $maxkey = $key;
     
    702702    public static function array_min($arraydata, $returnkey=false) {
    703703        $minvalue = false;
    704         $minkey = false;
     704        $minkey   = false;
    705705        foreach ($arraydata as $key => $value) {
    706706            if (!is_array($value)) {
    707                 if ($value > $minvalue) {
     707                if (($minvalue === false) || ($value < $minvalue)) {
    708708                    $minvalue = $value;
    709709                    $minkey = $key;
     
    15301530    /**
    15311531     * @param array $ThisFileInfo
     1532     * @param bool  $option_tags_html default true (just as in the main getID3 class)
    15321533     *
    15331534     * @return bool
    15341535     */
    1535     public static function CopyTagsToComments(&$ThisFileInfo) {
    1536 
     1536    public static function CopyTagsToComments(&$ThisFileInfo, $option_tags_html=true) {
    15371537        // Copy all entries from ['tags'] into common ['comments']
    15381538        if (!empty($ThisFileInfo['tags'])) {
     1539            if (isset($ThisFileInfo['tags']['id3v1'])) {
     1540                // bubble ID3v1 to the end, if present to aid in detecting bad ID3v1 encodings
     1541                $ID3v1 = $ThisFileInfo['tags']['id3v1'];
     1542                unset($ThisFileInfo['tags']['id3v1']);
     1543                $ThisFileInfo['tags']['id3v1'] = $ID3v1;
     1544                unset($ID3v1);
     1545            }
    15391546            foreach ($ThisFileInfo['tags'] as $tagtype => $tagarray) {
    15401547                foreach ($tagarray as $tagname => $tagdata) {
     
    15551562                                    }
    15561563                                }
     1564                                if (function_exists('mb_convert_encoding')) {
     1565                                    if (trim($value) == trim(substr(mb_convert_encoding($existingvalue, $ThisFileInfo['id3v1']['encoding'], $ThisFileInfo['encoding']), 0, 30))) {
     1566                                        // value stored in ID3v1 appears to be probably the multibyte value transliterated (badly) into ISO-8859-1 in ID3v1.
     1567                                        // As an example, Foobar2000 will do this if you tag a file with Chinese or Arabic or Cyrillic or something that doesn't fit into ISO-8859-1 the ID3v1 will consist of mostly "?" characters, one per multibyte unrepresentable character
     1568                                        break 2;
     1569                                    }
     1570                                }
    15571571
    15581572                            } elseif (!is_array($value)) {
     
    15631577                                    if ((strlen($existingvalue) > 10) && ($newvaluelength > $oldvaluelength) && (substr(trim($value), 0, strlen($existingvalue)) == $existingvalue)) {
    15641578                                        $ThisFileInfo['comments'][$tagname][$existingkey] = trim($value);
    1565                                         //break 2;
    15661579                                        break;
    15671580                                    }
     
    15981611            }
    15991612
    1600             // Copy to ['comments_html']
    1601             if (!empty($ThisFileInfo['comments'])) {
    1602                 foreach ($ThisFileInfo['comments'] as $field => $values) {
    1603                     if ($field == 'picture') {
    1604                         // pictures can take up a lot of space, and we don't need multiple copies of them
    1605                         // let there be a single copy in [comments][picture], and not elsewhere
    1606                         continue;
    1607                     }
    1608                     foreach ($values as $index => $value) {
    1609                         if (is_array($value)) {
    1610                             $ThisFileInfo['comments_html'][$field][$index] = $value;
    1611                         } else {
    1612                             $ThisFileInfo['comments_html'][$field][$index] = str_replace('&#0;', '', self::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
     1613            if ($option_tags_html) {
     1614                // Copy ['comments'] to ['comments_html']
     1615                if (!empty($ThisFileInfo['comments'])) {
     1616                    foreach ($ThisFileInfo['comments'] as $field => $values) {
     1617                        if ($field == 'picture') {
     1618                            // pictures can take up a lot of space, and we don't need multiple copies of them
     1619                            // let there be a single copy in [comments][picture], and not elsewhere
     1620                            continue;
     1621                        }
     1622                        foreach ($values as $index => $value) {
     1623                            if (is_array($value)) {
     1624                                $ThisFileInfo['comments_html'][$field][$index] = $value;
     1625                            } else {
     1626                                $ThisFileInfo['comments_html'][$field][$index] = str_replace('&#0;', '', self::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
     1627                            }
    16131628                        }
    16141629                    }
Note: See TracChangeset for help on using the changeset viewer.