Make WordPress Core


Ignore:
Timestamp:
09/11/2014 07:06:33 PM (10 years ago)
Author:
wonderboymusic
Message:

Update getID3 library to 1.9.8.

Changes:
https://github.com/JamesHeinrich/getID3/compare/1.9.7...v1.9.8

Fixes #29627.

File:
1 edited

Legend:

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

    r29378 r29734  
    44//  available at http://getid3.sourceforge.net                 //
    55//            or http://www.getid3.org                         //
     6//          also https://github.com/JamesHeinrich/getID3       //
    67/////////////////////////////////////////////////////////////////
    78//                                                             //
     
    283284            } else {
    284285                throw new Exception('ERROR: Cannot have signed integers larger than '.(8 * PHP_INT_SIZE).'-bits ('.strlen($byteword).') in self::BigEndian2Int()');
    285                 break;
    286286            }
    287287        }
     
    636636        if (is_readable($filename_source) && is_file($filename_source) && ($fp_src = fopen($filename_source, 'rb'))) {
    637637            if (($fp_dest = fopen($filename_dest, 'wb'))) {
    638                 if (fseek($fp_src, $offset, SEEK_SET) == 0) {
     638                if (fseek($fp_src, $offset) == 0) {
    639639                    $byteslefttowrite = $length;
    640640                    while (($byteslefttowrite > 0) && ($buffer = fread($fp_src, min($byteslefttowrite, getID3::FREAD_BUFFER_SIZE)))) {
     
    987987    }
    988988
     989    public static function recursiveMultiByteCharString2HTML($data, $charset='ISO-8859-1') {
     990        if (is_string($data)) {
     991            return self::MultiByteCharString2HTML($data, $charset);
     992        } elseif (is_array($data)) {
     993            $return_data = array();
     994            foreach ($data as $key => $value) {
     995                $return_data[$key] = self::recursiveMultiByteCharString2HTML($value, $charset);
     996            }
     997            return $return_data;
     998        }
     999        // integer, float, objects, resources, etc
     1000        return $data;
     1001    }
    9891002
    9901003    public static function MultiByteCharString2HTML($string, $charset='ISO-8859-1') {
     
    12111224                                foreach ($ThisFileInfo['comments'][$tagname] as $existingkey => $existingvalue) {
    12121225                                    $oldvaluelength = strlen(trim($existingvalue));
    1213                                     if (($newvaluelength > $oldvaluelength) && (substr(trim($value), 0, strlen($existingvalue)) == $existingvalue)) {
     1226                                    if ((strlen($existingvalue) > 10) && ($newvaluelength > $oldvaluelength) && (substr(trim($value), 0, strlen($existingvalue)) == $existingvalue)) {
    12141227                                        $ThisFileInfo['comments'][$tagname][$existingkey] = trim($value);
    1215                                         break 2;
     1228                                        //break 2;
     1229                                        break;
    12161230                                    }
    12171231                                }
     
    12201234                            if (is_array($value) || empty($ThisFileInfo['comments'][$tagname]) || !in_array(trim($value), $ThisFileInfo['comments'][$tagname])) {
    12211235                                $value = (is_string($value) ? trim($value) : $value);
    1222                                 $ThisFileInfo['comments'][$tagname][] = $value;
     1236                                if (!is_numeric($key)) {
     1237                                    $ThisFileInfo['comments'][$tagname][$key] = $value;
     1238                                } else {
     1239                                    $ThisFileInfo['comments'][$tagname][]     = $value;
     1240                                }
    12231241                            }
    12241242                        }
     
    12281246
    12291247            // Copy to ['comments_html']
    1230             foreach ($ThisFileInfo['comments'] as $field => $values) {
    1231                 if ($field == 'picture') {
    1232                     // pictures can take up a lot of space, and we don't need multiple copies of them
    1233                     // let there be a single copy in [comments][picture], and not elsewhere
    1234                     continue;
    1235                 }
    1236                 foreach ($values as $index => $value) {
    1237                     if (is_array($value)) {
    1238                         $ThisFileInfo['comments_html'][$field][$index] = $value;
    1239                     } else {
    1240                         $ThisFileInfo['comments_html'][$field][$index] = str_replace('�', '', self::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
     1248            if (!empty($ThisFileInfo['comments'])) {
     1249                foreach ($ThisFileInfo['comments'] as $field => $values) {
     1250                    if ($field == 'picture') {
     1251                        // pictures can take up a lot of space, and we don't need multiple copies of them
     1252                        // let there be a single copy in [comments][picture], and not elsewhere
     1253                        continue;
     1254                    }
     1255                    foreach ($values as $index => $value) {
     1256                        if (is_array($value)) {
     1257                            $ThisFileInfo['comments_html'][$field][$index] = $value;
     1258                        } else {
     1259                            $ThisFileInfo['comments_html'][$field][$index] = str_replace('�', '', self::MultiByteCharString2HTML($value, $ThisFileInfo['encoding']));
     1260                        }
    12411261                    }
    12421262                }
    12431263            }
     1264
    12441265        }
    12451266        return true;
     
    13401361        return $filesize;
    13411362    }
     1363
     1364
     1365    /**
     1366    * Workaround for Bug #37268 (https://bugs.php.net/bug.php?id=37268)
     1367    * @param string $path A path.
     1368    * @param string $suffix If the name component ends in suffix this will also be cut off.
     1369    * @return string
     1370    */
     1371    public static function mb_basename($path, $suffix = null) {
     1372        $splited = preg_split('#/#', rtrim($path, '/ '));
     1373        return substr(basename('X'.$splited[count($splited) - 1], $suffix), 1);
     1374    }
     1375
    13421376}
Note: See TracChangeset for help on using the changeset viewer.