WordPress.org

Make WordPress Core

Ticket #47751: 47751-External-getID3.patch

File 47751-External-getID3.patch, 28.0 KB (added by jrf, 11 months ago)

[External getID3] PHP 7.4 compatibility: fix deprecated curly brace array access

  • src/wp-includes/ID3/getid3.lib.php

    From dc21e51860cd00cee3c1a94309baacfb8496aaff Mon Sep 17 00:00:00 2001
    From: jrfnl <jrfnl@users.noreply.github.com>
    Date: Mon, 22 Jul 2019 05:16:25 +0200
    Subject: [PATCH] [External getID3] PHP 7.4 compatibility: fix deprecated curly
     brace array access
    
    PHP 7.4 will deprecated array access using curly braces.
    
    Ref: https://wiki.php.net/rfc/deprecate_curly_braces_array_access
    ---
     src/wp-includes/ID3/getid3.lib.php            | 126 +++++++++---------
     src/wp-includes/ID3/getid3.php                |   4 +-
     .../ID3/module.audio-video.asf.php            |  32 ++---
     src/wp-includes/ID3/module.audio.ac3.php      |   2 +-
     src/wp-includes/ID3/module.audio.mp3.php      |  40 +++---
     src/wp-includes/ID3/module.tag.id3v1.php      |   2 +-
     src/wp-includes/ID3/module.tag.id3v2.php      |  28 ++--
     7 files changed, 117 insertions(+), 117 deletions(-)
    
    diff --git a/src/wp-includes/ID3/getid3.lib.php b/src/wp-includes/ID3/getid3.lib.php
    index 1931bb3724..28bdd67fdc 100644
    a b class getid3_lib 
    1919                $returnstring = '';
    2020                for ($i = 0; $i < strlen($string); $i++) {
    2121                        if ($hex) {
    22                                 $returnstring .= str_pad(dechex(ord($string{$i})), 2, '0', STR_PAD_LEFT);
     22                                $returnstring .= str_pad(dechex(ord($string[$i])), 2, '0', STR_PAD_LEFT);
    2323                        } else {
    24                                 $returnstring .= ' '.(preg_match("#[\x20-\x7E]#", $string{$i}) ? $string{$i} : '¤');
     24                                $returnstring .= ' '.(preg_match("#[\x20-\x7E]#", $string[$i]) ? $string[$i] : '¤');
    2525                        }
    2626                        if ($spaces) {
    2727                                $returnstring .= ' ';
    class getid3_lib 
    110110                // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html
    111111                if (strpos($binarypointnumber, '.') === false) {
    112112                        $binarypointnumber = '0.'.$binarypointnumber;
    113                 } elseif ($binarypointnumber{0} == '.') {
     113                } elseif ($binarypointnumber[0] == '.') {
    114114                        $binarypointnumber = '0'.$binarypointnumber;
    115115                }
    116116                $exponent = 0;
    117                 while (($binarypointnumber{0} != '1') || (substr($binarypointnumber, 1, 1) != '.')) {
     117                while (($binarypointnumber[0] != '1') || (substr($binarypointnumber, 1, 1) != '.')) {
    118118                        if (substr($binarypointnumber, 1, 1) == '.') {
    119119                                $exponent--;
    120120                                $binarypointnumber = substr($binarypointnumber, 2, 1).'.'.substr($binarypointnumber, 3);
    class getid3_lib 
    122122                                $pointpos = strpos($binarypointnumber, '.');
    123123                                $exponent += ($pointpos - 1);
    124124                                $binarypointnumber = str_replace('.', '', $binarypointnumber);
    125                                 $binarypointnumber = $binarypointnumber{0}.'.'.substr($binarypointnumber, 1);
     125                                $binarypointnumber = $binarypointnumber[0].'.'.substr($binarypointnumber, 1);
    126126                        }
    127127                }
    128128                $binarypointnumber = str_pad(substr($binarypointnumber, 0, $maxbits + 2), $maxbits + 2, '0', STR_PAD_RIGHT);
    class getid3_lib 
    191191                if (!$bitword) {
    192192                        return 0;
    193193                }
    194                 $signbit = $bitword{0};
     194                $signbit = $bitword[0];
    195195
    196196                switch (strlen($byteword) * 8) {
    197197                        case 32:
    class getid3_lib 
    208208                                // 80-bit Apple SANE format
    209209                                // http://www.mactech.com/articles/mactech/Vol.06/06.01/SANENormalized/
    210210                                $exponentstring = substr($bitword, 1, 15);
    211                                 $isnormalized = intval($bitword{16});
     211                                $isnormalized = intval($bitword[16]);
    212212                                $fractionstring = substr($bitword, 17, 63);
    213213                                $exponent = pow(2, self::Bin2Dec($exponentstring) - 16383);
    214214                                $fraction = $isnormalized + self::DecimalBinary2Float($fractionstring);
    class getid3_lib 
    269269                for ($i = 0; $i < $bytewordlen; $i++) {
    270270                        if ($synchsafe) { // disregard MSB, effectively 7-bit bytes
    271271                                //$intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7); // faster, but runs into problems past 2^31 on 32-bit systems
    272                                 $intvalue += (ord($byteword{$i}) & 0x7F) * pow(2, ($bytewordlen - 1 - $i) * 7);
     272                                $intvalue += (ord($byteword[$i]) & 0x7F) * pow(2, ($bytewordlen - 1 - $i) * 7);
    273273                        } else {
    274                                 $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i));
     274                                $intvalue += ord($byteword[$i]) * pow(256, ($bytewordlen - 1 - $i));
    275275                        }
    276276                }
    277277                if ($signed && !$synchsafe) {
    class getid3_lib 
    301301                $binvalue = '';
    302302                $bytewordlen = strlen($byteword);
    303303                for ($i = 0; $i < $bytewordlen; $i++) {
    304                         $binvalue .= str_pad(decbin(ord($byteword{$i})), 8, '0', STR_PAD_LEFT);
     304                        $binvalue .= str_pad(decbin(ord($byteword[$i])), 8, '0', STR_PAD_LEFT);
    305305                }
    306306                return $binvalue;
    307307        }
    class getid3_lib 
    345345        public static function Bin2Dec($binstring, $signed=false) {
    346346                $signmult = 1;
    347347                if ($signed) {
    348                         if ($binstring{0} == '1') {
     348                        if ($binstring[0] == '1') {
    349349                                $signmult = -1;
    350350                        }
    351351                        $binstring = substr($binstring, 1);
    class getid3_lib 
    709709                        $newcharstring .= "\xEF\xBB\xBF";
    710710                }
    711711                for ($i = 0; $i < strlen($string); $i++) {
    712                         $charval = ord($string{$i});
     712                        $charval = ord($string[$i]);
    713713                        $newcharstring .= self::iconv_fallback_int_utf8($charval);
    714714                }
    715715                return $newcharstring;
    class getid3_lib 
    722722                        $newcharstring .= "\xFE\xFF";
    723723                }
    724724                for ($i = 0; $i < strlen($string); $i++) {
    725                         $newcharstring .= "\x00".$string{$i};
     725                        $newcharstring .= "\x00".$string[$i];
    726726                }
    727727                return $newcharstring;
    728728        }
    class getid3_lib 
    734734                        $newcharstring .= "\xFF\xFE";
    735735                }
    736736                for ($i = 0; $i < strlen($string); $i++) {
    737                         $newcharstring .= $string{$i}."\x00";
     737                        $newcharstring .= $string[$i]."\x00";
    738738                }
    739739                return $newcharstring;
    740740        }
    class getid3_lib 
    754754                $offset = 0;
    755755                $stringlength = strlen($string);
    756756                while ($offset < $stringlength) {
    757                         if ((ord($string{$offset}) | 0x07) == 0xF7) {
     757                        if ((ord($string[$offset]) | 0x07) == 0xF7) {
    758758                                // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
    759                                 $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
    760                                                    ((ord($string{($offset + 1)}) & 0x3F) << 12) &
    761                                                    ((ord($string{($offset + 2)}) & 0x3F) <<  6) &
    762                                                         (ord($string{($offset + 3)}) & 0x3F);
     759                                $charval = ((ord($string[($offset + 0)]) & 0x07) << 18) &
     760                                                   ((ord($string[($offset + 1)]) & 0x3F) << 12) &
     761                                                   ((ord($string[($offset + 2)]) & 0x3F) <<  6) &
     762                                                        (ord($string[($offset + 3)]) & 0x3F);
    763763                                $offset += 4;
    764                         } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
     764                        } elseif ((ord($string[$offset]) | 0x0F) == 0xEF) {
    765765                                // 1110bbbb 10bbbbbb 10bbbbbb
    766                                 $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
    767                                                    ((ord($string{($offset + 1)}) & 0x3F) <<  6) &
    768                                                         (ord($string{($offset + 2)}) & 0x3F);
     766                                $charval = ((ord($string[($offset + 0)]) & 0x0F) << 12) &
     767                                                   ((ord($string[($offset + 1)]) & 0x3F) <<  6) &
     768                                                        (ord($string[($offset + 2)]) & 0x3F);
    769769                                $offset += 3;
    770                         } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
     770                        } elseif ((ord($string[$offset]) | 0x1F) == 0xDF) {
    771771                                // 110bbbbb 10bbbbbb
    772                                 $charval = ((ord($string{($offset + 0)}) & 0x1F) <<  6) &
    773                                                         (ord($string{($offset + 1)}) & 0x3F);
     772                                $charval = ((ord($string[($offset + 0)]) & 0x1F) <<  6) &
     773                                                        (ord($string[($offset + 1)]) & 0x3F);
    774774                                $offset += 2;
    775                         } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
     775                        } elseif ((ord($string[$offset]) | 0x7F) == 0x7F) {
    776776                                // 0bbbbbbb
    777                                 $charval = ord($string{$offset});
     777                                $charval = ord($string[$offset]);
    778778                                $offset += 1;
    779779                        } else {
    780780                                // error? throw some kind of warning here?
    class getid3_lib 
    797797                $offset = 0;
    798798                $stringlength = strlen($string);
    799799                while ($offset < $stringlength) {
    800                         if ((ord($string{$offset}) | 0x07) == 0xF7) {
     800                        if ((ord($string[$offset]) | 0x07) == 0xF7) {
    801801                                // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
    802                                 $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
    803                                                    ((ord($string{($offset + 1)}) & 0x3F) << 12) &
    804                                                    ((ord($string{($offset + 2)}) & 0x3F) <<  6) &
    805                                                         (ord($string{($offset + 3)}) & 0x3F);
     802                                $charval = ((ord($string[($offset + 0)]) & 0x07) << 18) &
     803                                                   ((ord($string[($offset + 1)]) & 0x3F) << 12) &
     804                                                   ((ord($string[($offset + 2)]) & 0x3F) <<  6) &
     805                                                        (ord($string[($offset + 3)]) & 0x3F);
    806806                                $offset += 4;
    807                         } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
     807                        } elseif ((ord($string[$offset]) | 0x0F) == 0xEF) {
    808808                                // 1110bbbb 10bbbbbb 10bbbbbb
    809                                 $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
    810                                                    ((ord($string{($offset + 1)}) & 0x3F) <<  6) &
    811                                                         (ord($string{($offset + 2)}) & 0x3F);
     809                                $charval = ((ord($string[($offset + 0)]) & 0x0F) << 12) &
     810                                                   ((ord($string[($offset + 1)]) & 0x3F) <<  6) &
     811                                                        (ord($string[($offset + 2)]) & 0x3F);
    812812                                $offset += 3;
    813                         } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
     813                        } elseif ((ord($string[$offset]) | 0x1F) == 0xDF) {
    814814                                // 110bbbbb 10bbbbbb
    815                                 $charval = ((ord($string{($offset + 0)}) & 0x1F) <<  6) &
    816                                                         (ord($string{($offset + 1)}) & 0x3F);
     815                                $charval = ((ord($string[($offset + 0)]) & 0x1F) <<  6) &
     816                                                        (ord($string[($offset + 1)]) & 0x3F);
    817817                                $offset += 2;
    818                         } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
     818                        } elseif ((ord($string[$offset]) | 0x7F) == 0x7F) {
    819819                                // 0bbbbbbb
    820                                 $charval = ord($string{$offset});
     820                                $charval = ord($string[$offset]);
    821821                                $offset += 1;
    822822                        } else {
    823823                                // error? throw some kind of warning here?
    class getid3_lib 
    840840                $offset = 0;
    841841                $stringlength = strlen($string);
    842842                while ($offset < $stringlength) {
    843                         if ((ord($string{$offset}) | 0x07) == 0xF7) {
     843                        if ((ord($string[$offset]) | 0x07) == 0xF7) {
    844844                                // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb
    845                                 $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) &
    846                                                    ((ord($string{($offset + 1)}) & 0x3F) << 12) &
    847                                                    ((ord($string{($offset + 2)}) & 0x3F) <<  6) &
    848                                                         (ord($string{($offset + 3)}) & 0x3F);
     845                                $charval = ((ord($string[($offset + 0)]) & 0x07) << 18) &
     846                                                   ((ord($string[($offset + 1)]) & 0x3F) << 12) &
     847                                                   ((ord($string[($offset + 2)]) & 0x3F) <<  6) &
     848                                                        (ord($string[($offset + 3)]) & 0x3F);
    849849                                $offset += 4;
    850                         } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) {
     850                        } elseif ((ord($string[$offset]) | 0x0F) == 0xEF) {
    851851                                // 1110bbbb 10bbbbbb 10bbbbbb
    852                                 $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) &
    853                                                    ((ord($string{($offset + 1)}) & 0x3F) <<  6) &
    854                                                         (ord($string{($offset + 2)}) & 0x3F);
     852                                $charval = ((ord($string[($offset + 0)]) & 0x0F) << 12) &
     853                                                   ((ord($string[($offset + 1)]) & 0x3F) <<  6) &
     854                                                        (ord($string[($offset + 2)]) & 0x3F);
    855855                                $offset += 3;
    856                         } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) {
     856                        } elseif ((ord($string[$offset]) | 0x1F) == 0xDF) {
    857857                                // 110bbbbb 10bbbbbb
    858                                 $charval = ((ord($string{($offset + 0)}) & 0x1F) <<  6) &
    859                                                         (ord($string{($offset + 1)}) & 0x3F);
     858                                $charval = ((ord($string[($offset + 0)]) & 0x1F) <<  6) &
     859                                                        (ord($string[($offset + 1)]) & 0x3F);
    860860                                $offset += 2;
    861                         } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) {
     861                        } elseif ((ord($string[$offset]) | 0x7F) == 0x7F) {
    862862                                // 0bbbbbbb
    863                                 $charval = ord($string{$offset});
     863                                $charval = ord($string[$offset]);
    864864                                $offset += 1;
    865865                        } else {
    866866                                // error? maybe throw some warning here?
    class getid3_lib 
    10691069                        case 'utf-8':
    10701070                                $strlen = strlen($string);
    10711071                                for ($i = 0; $i < $strlen; $i++) {
    1072                                         $char_ord_val = ord($string{$i});
     1072                                        $char_ord_val = ord($string[$i]);
    10731073                                        $charval = 0;
    10741074                                        if ($char_ord_val < 0x80) {
    10751075                                                $charval = $char_ord_val;
    10761076                                        } elseif ((($char_ord_val & 0xF0) >> 4) == 0x0F  &&  $i+3 < $strlen) {
    10771077                                                $charval  = (($char_ord_val & 0x07) << 18);
    1078                                                 $charval += ((ord($string{++$i}) & 0x3F) << 12);
    1079                                                 $charval += ((ord($string{++$i}) & 0x3F) << 6);
    1080                                                 $charval +=  (ord($string{++$i}) & 0x3F);
     1078                                                $charval += ((ord($string[++$i]) & 0x3F) << 12);
     1079                                                $charval += ((ord($string[++$i]) & 0x3F) << 6);
     1080                                                $charval +=  (ord($string[++$i]) & 0x3F);
    10811081                                        } elseif ((($char_ord_val & 0xE0) >> 5) == 0x07  &&  $i+2 < $strlen) {
    10821082                                                $charval  = (($char_ord_val & 0x0F) << 12);
    1083                                                 $charval += ((ord($string{++$i}) & 0x3F) << 6);
    1084                                                 $charval +=  (ord($string{++$i}) & 0x3F);
     1083                                                $charval += ((ord($string[++$i]) & 0x3F) << 6);
     1084                                                $charval +=  (ord($string[++$i]) & 0x3F);
    10851085                                        } elseif ((($char_ord_val & 0xC0) >> 6) == 0x03  &&  $i+1 < $strlen) {
    10861086                                                $charval  = (($char_ord_val & 0x1F) << 6);
    1087                                                 $charval += (ord($string{++$i}) & 0x3F);
     1087                                                $charval += (ord($string[++$i]) & 0x3F);
    10881088                                        }
    10891089                                        if (($charval >= 32) && ($charval <= 127)) {
    10901090                                                $HTMLstring .= htmlentities(chr($charval));
  • src/wp-includes/ID3/getid3.php

    diff --git a/src/wp-includes/ID3/getid3.php b/src/wp-includes/ID3/getid3.php
    index 7732c19587..f39175ad34 100644
    a b class getID3 
    383383                                $header = fread($this->fp, 10);
    384384                                if ((substr($header, 0, 3) == 'ID3') && (strlen($header) == 10)) {
    385385                                        $this->info['id3v2']['header']        = true;
    386                                         $this->info['id3v2']['majorversion']  = ord($header{3});
    387                                         $this->info['id3v2']['minorversion']  = ord($header{4});
     386                                        $this->info['id3v2']['majorversion']  = ord($header[3]);
     387                                        $this->info['id3v2']['minorversion']  = ord($header[4]);
    388388                                        $this->info['avdataoffset']          += getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length
    389389                                }
    390390                        }
  • src/wp-includes/ID3/module.audio-video.asf.php

    diff --git a/src/wp-includes/ID3/module.audio-video.asf.php b/src/wp-includes/ID3/module.audio-video.asf.php
    index 23d3a0e680..7463170e63 100644
    a b class getid3_asf extends getid3_handler { 
    16181618        }
    16191619
    16201620        public static function BytestringToGUID($Bytestring) {
    1621                 $GUIDstring  = str_pad(dechex(ord($Bytestring{3})),  2, '0', STR_PAD_LEFT);
    1622                 $GUIDstring .= str_pad(dechex(ord($Bytestring{2})),  2, '0', STR_PAD_LEFT);
    1623                 $GUIDstring .= str_pad(dechex(ord($Bytestring{1})),  2, '0', STR_PAD_LEFT);
    1624                 $GUIDstring .= str_pad(dechex(ord($Bytestring{0})),  2, '0', STR_PAD_LEFT);
     1621                $GUIDstring  = str_pad(dechex(ord($Bytestring[3])),  2, '0', STR_PAD_LEFT);
     1622                $GUIDstring .= str_pad(dechex(ord($Bytestring[2])),  2, '0', STR_PAD_LEFT);
     1623                $GUIDstring .= str_pad(dechex(ord($Bytestring[1])),  2, '0', STR_PAD_LEFT);
     1624                $GUIDstring .= str_pad(dechex(ord($Bytestring[0])),  2, '0', STR_PAD_LEFT);
    16251625                $GUIDstring .= '-';
    1626                 $GUIDstring .= str_pad(dechex(ord($Bytestring{5})),  2, '0', STR_PAD_LEFT);
    1627                 $GUIDstring .= str_pad(dechex(ord($Bytestring{4})),  2, '0', STR_PAD_LEFT);
     1626                $GUIDstring .= str_pad(dechex(ord($Bytestring[5])),  2, '0', STR_PAD_LEFT);
     1627                $GUIDstring .= str_pad(dechex(ord($Bytestring[4])),  2, '0', STR_PAD_LEFT);
    16281628                $GUIDstring .= '-';
    1629                 $GUIDstring .= str_pad(dechex(ord($Bytestring{7})),  2, '0', STR_PAD_LEFT);
    1630                 $GUIDstring .= str_pad(dechex(ord($Bytestring{6})),  2, '0', STR_PAD_LEFT);
     1629                $GUIDstring .= str_pad(dechex(ord($Bytestring[7])),  2, '0', STR_PAD_LEFT);
     1630                $GUIDstring .= str_pad(dechex(ord($Bytestring[6])),  2, '0', STR_PAD_LEFT);
    16311631                $GUIDstring .= '-';
    1632                 $GUIDstring .= str_pad(dechex(ord($Bytestring{8})),  2, '0', STR_PAD_LEFT);
    1633                 $GUIDstring .= str_pad(dechex(ord($Bytestring{9})),  2, '0', STR_PAD_LEFT);
     1632                $GUIDstring .= str_pad(dechex(ord($Bytestring[8])),  2, '0', STR_PAD_LEFT);
     1633                $GUIDstring .= str_pad(dechex(ord($Bytestring[9])),  2, '0', STR_PAD_LEFT);
    16341634                $GUIDstring .= '-';
    1635                 $GUIDstring .= str_pad(dechex(ord($Bytestring{10})), 2, '0', STR_PAD_LEFT);
    1636                 $GUIDstring .= str_pad(dechex(ord($Bytestring{11})), 2, '0', STR_PAD_LEFT);
    1637                 $GUIDstring .= str_pad(dechex(ord($Bytestring{12})), 2, '0', STR_PAD_LEFT);
    1638                 $GUIDstring .= str_pad(dechex(ord($Bytestring{13})), 2, '0', STR_PAD_LEFT);
    1639                 $GUIDstring .= str_pad(dechex(ord($Bytestring{14})), 2, '0', STR_PAD_LEFT);
    1640                 $GUIDstring .= str_pad(dechex(ord($Bytestring{15})), 2, '0', STR_PAD_LEFT);
     1635                $GUIDstring .= str_pad(dechex(ord($Bytestring[10])), 2, '0', STR_PAD_LEFT);
     1636                $GUIDstring .= str_pad(dechex(ord($Bytestring[11])), 2, '0', STR_PAD_LEFT);
     1637                $GUIDstring .= str_pad(dechex(ord($Bytestring[12])), 2, '0', STR_PAD_LEFT);
     1638                $GUIDstring .= str_pad(dechex(ord($Bytestring[13])), 2, '0', STR_PAD_LEFT);
     1639                $GUIDstring .= str_pad(dechex(ord($Bytestring[14])), 2, '0', STR_PAD_LEFT);
     1640                $GUIDstring .= str_pad(dechex(ord($Bytestring[15])), 2, '0', STR_PAD_LEFT);
    16411641
    16421642                return strtoupper($GUIDstring);
    16431643        }
  • src/wp-includes/ID3/module.audio.ac3.php

    diff --git a/src/wp-includes/ID3/module.audio.ac3.php b/src/wp-includes/ID3/module.audio.ac3.php
    index 27c328d3d3..59bf72a558 100644
    a b $thisfile_ac3['bitrate'] = round(($thisfile_ac3['bitrate'] * 1.05) / 16000) * 16 
    623623                // -8    -42.14 dB
    624624
    625625                $fourbit = str_pad(decbin(($compre & 0xF0) >> 4), 4, '0', STR_PAD_LEFT);
    626                 if ($fourbit{0} == '1') {
     626                if ($fourbit[0] == '1') {
    627627                        $log_gain = -8 + bindec(substr($fourbit, 1));
    628628                } else {
    629629                        $log_gain = bindec(substr($fourbit, 1));
  • src/wp-includes/ID3/module.audio.mp3.php

    diff --git a/src/wp-includes/ID3/module.audio.mp3.php b/src/wp-includes/ID3/module.audio.mp3.php
    index ed2d84434c..66178ad10b 100644
    a b class getid3_mp3 extends getid3_handler 
    678678                                if ($thisfile_mpeg_audio['xing_flags']['toc']) {
    679679                                        $LAMEtocData = substr($headerstring, $VBRidOffset + 16, 100);
    680680                                        for ($i = 0; $i < 100; $i++) {
    681                                                 $thisfile_mpeg_audio['toc'][$i] = ord($LAMEtocData{$i});
     681                                                $thisfile_mpeg_audio['toc'][$i] = ord($LAMEtocData[$i]);
    682682                                        }
    683683                                }
    684684                                if ($thisfile_mpeg_audio['xing_flags']['vbr_scale']) {
    class getid3_mp3 extends getid3_handler 
    11371137
    11381138                $SyncPattern1 = substr($MPEGaudioData, 0, 4);
    11391139                // may be different pattern due to padding
    1140                 $SyncPattern2 = $SyncPattern1{0}.$SyncPattern1{1}.chr(ord($SyncPattern1{2}) | 0x02).$SyncPattern1{3};
     1140                $SyncPattern2 = $SyncPattern1[0].$SyncPattern1[1].chr(ord($SyncPattern1[2]) | 0x02).$SyncPattern1[3];
    11411141                if ($SyncPattern2 === $SyncPattern1) {
    1142                         $SyncPattern2 = $SyncPattern1{0}.$SyncPattern1{1}.chr(ord($SyncPattern1{2}) & 0xFD).$SyncPattern1{3};
     1142                        $SyncPattern2 = $SyncPattern1[0].$SyncPattern1[1].chr(ord($SyncPattern1[2]) & 0xFD).$SyncPattern1[3];
    11431143                }
    11441144
    11451145                $framelength = false;
    class getid3_mp3 extends getid3_handler 
    12411241                        if (strlen($head4) < 4) {
    12421242                                break;
    12431243                        }
    1244                         if ($head4{0} != "\xFF") {
     1244                        if ($head4[0] != "\xFF") {
    12451245                                for ($i = 1; $i < 4; $i++) {
    1246                                         if ($head4{$i} == "\xFF") {
     1246                                        if ($head4[$i] == "\xFF") {
    12471247                                                $this->fseek($i - 4, SEEK_CUR);
    12481248                                                continue 2;
    12491249                                        }
    class getid3_mp3 extends getid3_handler 
    12751275                                        $WhereWeWere = $this->ftell();
    12761276                                        $this->fseek($MPEGaudioHeaderLengthCache[$head4] - 4, SEEK_CUR);
    12771277                                        $next4 = $this->fread(4);
    1278                                         if ($next4{0} == "\xFF") {
     1278                                        if ($next4[0] == "\xFF") {
    12791279                                                if (!isset($MPEGaudioHeaderDecodeCache[$next4])) {
    12801280                                                        $MPEGaudioHeaderDecodeCache[$next4] = self::MPEGaudioHeaderDecode($next4);
    12811281                                                }
    class getid3_mp3 extends getid3_handler 
    14161416                                return false;
    14171417                        }
    14181418
    1419                         if (($header{$SynchSeekOffset} == "\xFF") && ($header{($SynchSeekOffset + 1)} > "\xE0")) { // synch detected
     1419                        if (($header[$SynchSeekOffset] == "\xFF") && ($header[($SynchSeekOffset + 1)] > "\xE0")) { // synch detected
    14201420                                if (!isset($FirstFrameThisfileInfo) && !isset($info['mpeg']['audio'])) {
    14211421                                        $FirstFrameThisfileInfo = $info;
    14221422                                        $FirstFrameAVDataOffset = $avdataoffset + $SynchSeekOffset;
    class getid3_mp3 extends getid3_handler 
    15101510                                                                $this->fseek($scan_start_offset[$current_segment]);
    15111511                                                                $buffer_4k = $this->fread(4096);
    15121512                                                                for ($j = 0; $j < (strlen($buffer_4k) - 4); $j++) {
    1513                                                                         if (($buffer_4k{$j} == "\xFF") && ($buffer_4k{($j + 1)} > "\xE0")) { // synch detected
     1513                                                                        if (($buffer_4k[$j] == "\xFF") && ($buffer_4k[($j + 1)] > "\xE0")) { // synch detected
    15141514                                                                                if ($this->decodeMPEGaudioHeader($scan_start_offset[$current_segment] + $j, $dummy, false, false, $FastMode)) {
    15151515                                                                                        $calculated_next_offset = $scan_start_offset[$current_segment] + $j + $dummy['mpeg']['audio']['framelength'];
    15161516                                                                                        if ($this->decodeMPEGaudioHeader($calculated_next_offset, $dummy, false, false, $FastMode)) {
    class getid3_mp3 extends getid3_handler 
    17941794                }
    17951795
    17961796                $MPEGrawHeader['synch']         = (getid3_lib::BigEndian2Int(substr($Header4Bytes, 0, 2)) & 0xFFE0) >> 4;
    1797                 $MPEGrawHeader['version']       = (ord($Header4Bytes{1}) & 0x18) >> 3; //    BB
    1798                 $MPEGrawHeader['layer']         = (ord($Header4Bytes{1}) & 0x06) >> 1; //      CC
    1799                 $MPEGrawHeader['protection']    = (ord($Header4Bytes{1}) & 0x01);      //        D
    1800                 $MPEGrawHeader['bitrate']       = (ord($Header4Bytes{2}) & 0xF0) >> 4; // EEEE
    1801                 $MPEGrawHeader['sample_rate']   = (ord($Header4Bytes{2}) & 0x0C) >> 2; //     FF
    1802                 $MPEGrawHeader['padding']       = (ord($Header4Bytes{2}) & 0x02) >> 1; //       G
    1803                 $MPEGrawHeader['private']       = (ord($Header4Bytes{2}) & 0x01);      //        H
    1804                 $MPEGrawHeader['channelmode']   = (ord($Header4Bytes{3}) & 0xC0) >> 6; // II
    1805                 $MPEGrawHeader['modeextension'] = (ord($Header4Bytes{3}) & 0x30) >> 4; //   JJ
    1806                 $MPEGrawHeader['copyright']     = (ord($Header4Bytes{3}) & 0x08) >> 3; //     K
    1807                 $MPEGrawHeader['original']      = (ord($Header4Bytes{3}) & 0x04) >> 2; //      L
    1808                 $MPEGrawHeader['emphasis']      = (ord($Header4Bytes{3}) & 0x03);      //       MM
     1797                $MPEGrawHeader['version']       = (ord($Header4Bytes[1]) & 0x18) >> 3; //    BB
     1798                $MPEGrawHeader['layer']         = (ord($Header4Bytes[1]) & 0x06) >> 1; //      CC
     1799                $MPEGrawHeader['protection']    = (ord($Header4Bytes[1]) & 0x01);      //        D
     1800                $MPEGrawHeader['bitrate']       = (ord($Header4Bytes[2]) & 0xF0) >> 4; // EEEE
     1801                $MPEGrawHeader['sample_rate']   = (ord($Header4Bytes[2]) & 0x0C) >> 2; //     FF
     1802                $MPEGrawHeader['padding']       = (ord($Header4Bytes[2]) & 0x02) >> 1; //       G
     1803                $MPEGrawHeader['private']       = (ord($Header4Bytes[2]) & 0x01);      //        H
     1804                $MPEGrawHeader['channelmode']   = (ord($Header4Bytes[3]) & 0xC0) >> 6; // II
     1805                $MPEGrawHeader['modeextension'] = (ord($Header4Bytes[3]) & 0x30) >> 4; //   JJ
     1806                $MPEGrawHeader['copyright']     = (ord($Header4Bytes[3]) & 0x08) >> 3; //     K
     1807                $MPEGrawHeader['original']      = (ord($Header4Bytes[3]) & 0x04) >> 2; //      L
     1808                $MPEGrawHeader['emphasis']      = (ord($Header4Bytes[3]) & 0x03);      //       MM
    18091809
    18101810                return $MPEGrawHeader;
    18111811        }
  • src/wp-includes/ID3/module.tag.id3v1.php

    diff --git a/src/wp-includes/ID3/module.tag.id3v1.php b/src/wp-includes/ID3/module.tag.id3v1.php
    index d160e9b44a..7d033eb010 100644
    a b class getid3_id3v1 extends getid3_handler 
    4343
    4444                        // If second-last byte of comment field is null and last byte of comment field is non-null
    4545                        // then this is ID3v1.1 and the comment field is 28 bytes long and the 30th byte is the track number
    46                         if (($id3v1tag{125} === "\x00") && ($id3v1tag{126} !== "\x00")) {
     46                        if (($id3v1tag[125] === "\x00") && ($id3v1tag[126] !== "\x00")) {
    4747                                $ParsedID3v1['track']   = ord(substr($ParsedID3v1['comment'], 29,  1));
    4848                                $ParsedID3v1['comment'] =     substr($ParsedID3v1['comment'],  0, 28);
    4949                        }
  • src/wp-includes/ID3/module.tag.id3v2.php

    diff --git a/src/wp-includes/ID3/module.tag.id3v2.php b/src/wp-includes/ID3/module.tag.id3v2.php
    index fc586e8e13..8829c6e65f 100644
    a b class getid3_id3v2 extends getid3_handler 
    5656                $header = $this->fread(10);
    5757                if (substr($header, 0, 3) == 'ID3'  &&  strlen($header) == 10) {
    5858
    59                         $thisfile_id3v2['majorversion'] = ord($header{3});
    60                         $thisfile_id3v2['minorversion'] = ord($header{4});
     59                        $thisfile_id3v2['majorversion'] = ord($header[3]);
     60                        $thisfile_id3v2['minorversion'] = ord($header[4]);
    6161
    6262                        // shortcut
    6363                        $id3v2_majorversion = &$thisfile_id3v2['majorversion'];
    class getid3_id3v2 extends getid3_handler 
    7676
    7777                }
    7878
    79                 $id3_flags = ord($header{5});
     79                $id3_flags = ord($header[5]);
    8080                switch ($id3v2_majorversion) {
    8181                        case 2:
    8282                                // %ab000000 in v2.2
    class getid3_id3v2 extends getid3_handler 
    257257                                        $thisfile_id3v2['padding']['length'] = strlen($framedata);
    258258                                        $thisfile_id3v2['padding']['valid']  = true;
    259259                                        for ($i = 0; $i < $thisfile_id3v2['padding']['length']; $i++) {
    260                                                 if ($framedata{$i} != "\x00") {
     260                                                if ($framedata[$i] != "\x00") {
    261261                                                        $thisfile_id3v2['padding']['valid'] = false;
    262262                                                        $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i;
    263263                                                        $this->warning('Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)');
    class getid3_id3v2 extends getid3_handler 
    319319
    320320                                        $len = strlen($framedata);
    321321                                        for ($i = 0; $i < $len; $i++) {
    322                                                 if ($framedata{$i} != "\x00") {
     322                                                if ($framedata[$i] != "\x00") {
    323323                                                        $thisfile_id3v2['padding']['valid'] = false;
    324324                                                        $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i;
    325325                                                        $this->warning('Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)');
    class getid3_id3v2 extends getid3_handler 
    427427                        $footer = $this->fread(10);
    428428                        if (substr($footer, 0, 3) == '3DI') {
    429429                                $thisfile_id3v2['footer'] = true;
    430                                 $thisfile_id3v2['majorversion_footer'] = ord($footer{3});
    431                                 $thisfile_id3v2['minorversion_footer'] = ord($footer{4});
     430                                $thisfile_id3v2['majorversion_footer'] = ord($footer[3]);
     431                                $thisfile_id3v2['minorversion_footer'] = ord($footer[4]);
    432432                        }
    433433                        if ($thisfile_id3v2['majorversion_footer'] <= 4) {
    434                                 $id3_flags = ord(substr($footer{5}));
     434                                $id3_flags = ord(substr($footer[5]));
    435435                                $thisfile_id3v2_flags['unsynch_footer']  = (bool) ($id3_flags & 0x80);
    436436                                $thisfile_id3v2_flags['extfoot_footer']  = (bool) ($id3_flags & 0x40);
    437437                                $thisfile_id3v2_flags['experim_footer']  = (bool) ($id3_flags & 0x20);
    class getid3_id3v2 extends getid3_handler 
    678678                        //unset($parsedFrame['data']); do not unset, may be needed elsewhere, e.g. for replaygain
    679679
    680680
    681                 } elseif ($parsedFrame['frame_name']{0} == 'T') { // 4.2. T??[?] Text information frame
     681                } elseif ($parsedFrame['frame_name'][0] == 'T') { // 4.2. T??[?] Text information frame
    682682                        //   There may only be one text information frame of its kind in an tag.
    683683                        // <Header for 'Text information frame', ID: 'T000' - 'TZZZ',
    684684                        // excluding 'TXXX' described in 4.2.6.>
    class getid3_id3v2 extends getid3_handler 
    782782                        unset($parsedFrame['data']);
    783783
    784784
    785                 } elseif ($parsedFrame['frame_name']{0} == 'W') { // 4.3. W??? URL link frames
     785                } elseif ($parsedFrame['frame_name'][0] == 'W') { // 4.3. W??? URL link frames
    786786                        //   There may only be one URL link frame of its kind in a tag,
    787787                        //   except when stated otherwise in the frame description
    788788                        // <Header for 'URL link frame', ID: 'W000' - 'WZZZ', excluding 'WXXX'
    class getid3_id3v2 extends getid3_handler 
    10611061                                        $parsedFrame['lyrics'][$timestampindex]['data'] = substr($frame_remainingdata, $frame_offset, $frame_terminatorpos - $frame_offset);
    10621062
    10631063                                        $frame_remainingdata = substr($frame_remainingdata, $frame_terminatorpos + strlen($frame_textencoding_terminator));
    1064                                         if (($timestampindex == 0) && (ord($frame_remainingdata{0}) != 0)) {
     1064                                        if (($timestampindex == 0) && (ord($frame_remainingdata[0]) != 0)) {
    10651065                                                // timestamp probably omitted for first data item
    10661066                                        } else {
    10671067                                                $parsedFrame['lyrics'][$timestampindex]['timestamp'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 0, 4));
    class getid3_id3v2 extends getid3_handler 
    36083608
    36093609        public static function IsANumber($numberstring, $allowdecimal=false, $allownegative=false) {
    36103610                for ($i = 0; $i < strlen($numberstring); $i++) {
    3611                         if ((chr($numberstring{$i}) < chr('0')) || (chr($numberstring{$i}) > chr('9'))) {
    3612                                 if (($numberstring{$i} == '.') && $allowdecimal) {
     3611                        if ((chr($numberstring[$i]) < chr('0')) || (chr($numberstring[$i]) > chr('9'))) {
     3612                                if (($numberstring[$i] == '.') && $allowdecimal) {
    36133613                                        // allowed
    3614                                 } elseif (($numberstring{$i} == '-') && $allownegative && ($i == 0)) {
     3614                                } elseif (($numberstring[$i] == '-') && $allownegative && ($i == 0)) {
    36153615                                        // allowed
    36163616                                } else {
    36173617                                        return false;