From 8463a44bb08c35868a30b985bcee9be292c3eaf1 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 28 Sep 2014 14:08:04 +0200 Subject: Create new PMA mb_* functions and initialise unit tests. Signed-off-by: Hugues Peccatte --- libraries/string.lib.php | 20 +++ libraries/stringMb.lib.php | 78 ++++++++++ libraries/stringNative.lib.php | 243 ++++++++++++++++++++++++++++++ test/libraries/stringMb_test.php | 103 +++++++++++++ test/libraries/stringNative_test.php | 145 ++++++++++++++++++ test/libraries/string_test_abstract.php | 259 ++++++++++++++++++++++++++++++++ 6 files changed, 848 insertions(+) create mode 100644 libraries/string.lib.php create mode 100644 libraries/stringMb.lib.php create mode 100644 libraries/stringNative.lib.php create mode 100644 test/libraries/stringMb_test.php create mode 100644 test/libraries/stringNative_test.php create mode 100644 test/libraries/string_test_abstract.php diff --git a/libraries/string.lib.php b/libraries/string.lib.php new file mode 100644 index 0000000000..77599e5f32 --- /dev/null +++ b/libraries/string.lib.php @@ -0,0 +1,20 @@ += strlen($haystack) + ) { + return false; + } + return stripos($haystack, $needle, $offset); + } + + /** + * Returns position of last $needle in $haystack or false if not found + * + * @param string $haystack the string being checked + * @param string $needle the string to find in haystack + * @param int $offset the search offset + * + * @return integer position of last $needle in $haystack or false + */ + function mb_strrpos($haystack, $needle, $offset = 0) + { + return strrpos($haystack, $needle, $offset); + } + + /** + * Returns position of last $needle in $haystack - case insensitive - or false + * if not found + * + * @param string $haystack the string being checked + * @param string $needle the string to find in haystack + * @param int $offset the search offset + * + * @return integer position of last $needle in $haystack or false + */ + function mb_strripos($haystack, $needle, $offset = 0) + { + if (('' === $haystack || false === $haystack) + && $offset >= strlen($haystack) + ) { + return false; + } + return strripos($haystack, $needle, $offset); + } + + /** + * Returns part of $haystack string starting from and including the first + * occurrence of $needle to the end of $haystack or false if not found + * + * @param string $haystack the string being checked + * @param string $needle the string to find in haystack + * @param bool $before_needle the part before the needle + * + * @return string part of $haystack or false + */ + function mb_strstr($haystack, $needle, $before_needle = false) + { + return strstr($haystack, $needle, $before_needle); + } + + /** + * Returns part of $haystack string starting from and including the first + * occurrence of $needle to the end of $haystack - case insensitive - or false + * if not found + * + * @param string $haystack the string being checked + * @param string $needle the string to find in haystack + * @param bool $before_needle the part before the needle + * + * @return string part of $haystack or false + */ + function mb_stristr($haystack, $needle, $before_needle = false) + { + return stristr($haystack, $needle, $before_needle); + } + + /** + * Returns the portion of haystack which starts at the last occurrence or false + * if not found + * + * @param string $haystack the string being checked + * @param string $needle the string to find in haystack + * + * @return string portion of haystack which starts at the last occurrence or + * false + */ + function mb_strrchr($haystack, $needle) + { + return strrchr($haystack, $needle); + } + + /** + * Make a string lowercase + * + * @param string $string the string being lowercased + * + * @return string the lower case string + */ + function mb_strtolower($string) + { + return strtolower($string); + } + + /** + * Make a string uppercase + * + * @param string $string the string being uppercased + * + * @return string the upper case string + */ + function mb_strtoupper($string) + { + return strtoupper($string); + } +} + +//New functions. +if (!@function_exists('mb_ord')) { + /** + * Perform a regular expression match + * + * @param string $pattern Pattern to search for + * @param string $subject Input string + * @param int $offset Start from search + * + * @return int 1 if matched, 0 if doesn't, false on failure + */ +function mb_preg_strpos($pattern, $subject, $offset = 0) +{ + $matches = array(); + $bFind = preg_match( + $pattern, $subject, $matches, PREG_OFFSET_CAPTURE, $offset + ); + if (1 !== $bFind) { + return false; + } + + return $matches[1][1]; +} + +/** + * Get the ordinal value of a string + * + * @param string $string the string for which ord is required + * + * @return int the ord value + */ +function mb_ord($string) +{ + return ord($string); +} + +/** + * Get the character of an ASCII + * + * @param int $ascii the ASCII code for which character is required + * + * @return string the character + */ +function mb_chr($ascii) +{ + return chr($ascii); +} +} \ No newline at end of file diff --git a/test/libraries/stringMb_test.php b/test/libraries/stringMb_test.php new file mode 100644 index 0000000000..908ec881cb --- /dev/null +++ b/test/libraries/stringMb_test.php @@ -0,0 +1,103 @@ +markTestSkipped( + "Multibyte functions don't exist, skipping test." + ); + } + require_once 'libraries/stringMb.lib.php'; + } + + /** + * Data provider for testStrlen + * + * @return array Test data + */ + public function providerStrlen() + { + return array_merge( + parent::providerStrlen(), + array(array(13, "chaîne testée")) + ); + } + + /** + * Data provider for testSubStr + * + * @return array Test data + */ + public function providerSubstr() + { + return array_merge( + parent::providerSubstr(), + array( + array("rçon", "garçon", 2, 4), + array("de ", "garçon de café", 7, 3) + ) + ); + } + + /** + * Data provider for testSubstrCount + * + * @return array Test data + */ + public function providerSubstrCount() + { + return array_merge( + parent::providerSubstrCount(), + array( + array(2, "garçon de café", "a"), + array(1, "garçon de café attristé", "ç"), + array(2, "garçon de café attristé", "é"), + array(1, "garçon de café attristé", "fé"), + ) + ); + } + + //providerSubstrCountException + + /** + * Data provider for testStrpos + * + * @return array Test data + */ + public function providerStrpos() + { + return array_merge( + parent::providerStrpos(), + array( + array(16, "garçon de café attristé", "t"), + array(13, "garçon de café attristé", "é"), + array(22, "garçon de café attristé", "é", 15), + ) + ); + } + + //providerStrpos + //providerStrrchr + //providerStrtolower +} diff --git a/test/libraries/stringNative_test.php b/test/libraries/stringNative_test.php new file mode 100644 index 0000000000..749bdb412f --- /dev/null +++ b/test/libraries/stringNative_test.php @@ -0,0 +1,145 @@ +markTestSkipped( + "Multibyte functions exist, can't test standard functions skipping " + . "test." + ); + } + include_once 'libraries/stringNative.lib.php'; + } + + /** + * Data provider for testStrlen + * + * @return array Test data + */ + public function providerStrlen() + { + return array( + array(2, "ab"), + array(9, "test data"), + array(0, ""), + ); + } + + /** + * Data provider for testSubStr + * + * @return array Test data + */ + public function providerSubstr() + { + return array( + array("b", "ab", 1, 1), + array("data", "testdata", 4, 4) + ); + } + + /** + * Data provider for testSubstrCount + * + * @return array Test data + */ + public function providerSubstrCount() + { + return array( + array(1, "ab", "b"), + array(1, "testdata", "data"), + array(2, "testdata", "a"), + array(0, "testdata", "b"), + ); + } + + /** + * Data provider for testSubstrCountException + * + * @return array Test data + */ + public function providerSubstrCountException() + { + return array( + array("testdata", ""), + array("testdata", null), + array("testdata", false), + ); + } + + /** + * Data provider for testStrpos + * + * @return array Test data + */ + public function providerStrpos() + { + return array( + array(1, "ab", "b", 0), + array(4, "test data", " ", 0) + ); + } + + /** + * Data provider for testStrrchr + * + * @return array Test data + */ + public function providerStrrchr() + { + return array( + array('abcdef', 'abcdefabcdef', 'a'), + array(false, 'abcdefabcdef', 'A'), + array('f', 'abcdefabcdef', 'f'), + array(false, 'abcdefabcdef', 'z'), + array(false, 'abcdefabcdef', ''), + array(false, 'abcdefabcdef', false), + array(false, 'abcdefabcdef', true), + array(false, '789456123', true), + array(false, 'abcdefabcdef', null), + array(false, null, null), + array(false, null, 'a'), + array(false, null, '0'), + array(false, false, null), + array(false, false, 'a'), + array(false, false, '0'), + array(false, true, null), + array(false, true, 'a'), + array(false, true, '0'), + ); + } + + /** + * Data provider for testStrpos + * + * @return array Test data + */ + public function providerStrtolower() + { + return array( + array("mary had a", "Mary Had A"), + array("test string", "TEST STRING") + ); + } +} diff --git a/test/libraries/string_test_abstract.php b/test/libraries/string_test_abstract.php new file mode 100644 index 0000000000..a99afc050a --- /dev/null +++ b/test/libraries/string_test_abstract.php @@ -0,0 +1,259 @@ +assertEquals( + $length, + mb_strlen($str) + ); + } + + /** + * Data provider for testStrlen + * + * @return array Test data + */ + public function providerStrlen() + { + return array( + array(2, "ab"), + array(9, "test data"), + array(0, ""), + ); + } + + /** + * Test for PMA_StringNative::substr + * + * @param string $str Expected substring + * @param string $haystack String to check in + * @param int $start Starting position of substring + * @param int $length Length of substring + * + * @return void + * @test + * @dataProvider providerSubstr + */ + public function testSubStr($str, $haystack, $start, $length) + { + $this->assertEquals( + $str, + mb_substr($haystack, $start, $length) + ); + } + + /** + * Data provider for testSubStr + * + * @return array Test data + */ + public function providerSubstr() + { + return array( + array("b", "ab", 1, 1), + array("data", "testdata", 4, 4), + ); + } + + /** + * Test for PMA_StringNative::substrCount + * + * @param int $expected number of occurrences + * @param string $haystack string to check + * @param string $needle string to count + * + * @return void + * @test + * @dataProvider providerSubstrCount + */ + public function testSubstrCount($expected, $haystack, $needle) + { + $this->assertEquals( + $expected, + mb_substr_count($haystack, $needle) + ); + } + + /** + * Data provider for testSubstrCount + * + * @return array Test data + */ + public function providerSubstrCount() + { + return array( + array(1, "ab", "b"), + array(1, "testdata", "data"), + array(2, "testdata", "a"), + array(0, "testdata", "b"), + ); + } + + /** + * Test for PMA_StringNative::substrCount + * + * @param string $haystack string to check + * @param string $needle string to count + * + * @return void + * @test + * @dataProvider providerSubstrCountException + * + * @expectedException PHPUnit_Framework_Error + */ + public function testSubstrCountException($haystack, $needle) + { + //No test. We're waiting for an exception. + mb_substr_count($haystack, $needle); + } + + /** + * Data provider for testSubstrCountException + * + * @return array Test data + */ + public function providerSubstrCountException() + { + return array( + array("testdata", ""), + array("testdata", null), + array("testdata", false), + ); + } + + /** + * Test for PMA_StringNative::strpos + * + * @param int $pos Expected position + * @param string $haystack String to search in + * @param string $needle String to search for + * @param int $offset Search offset + * + * @return void + * @test + * @dataProvider providerStrpos + */ + public function testStrpos($pos, $haystack, $needle, $offset = 0) + { + $this->assertEquals( + $pos, + mb_strpos($haystack, $needle, $offset) + ); + } + + /** + * Data provider for testStrpos + * + * @return array Test data + */ + public function providerStrpos() + { + return array( + array(1, "ab", "b", 0), + array(4, "test data", " ", 0), + ); + } + + /** + * Test for PMA_StringNative::strrchr + * + * @param string $expected Expected substring + * @param string $haystack String to cut + * @param string $needle Searched string + * + * @return void + * @test + * @dataProvider providerStrrchr + */ + public function testStrrchr($expected, $haystack, $needle) + { + $this->assertEquals( + $expected, + mb_strrchr($haystack, $needle) + ); + } + + /** + * Data provider for testStrrchr + * + * @return array Test data + */ + public function providerStrrchr() + { + return array( + array('abcdef', 'abcdefabcdef', 'a'), + array(false, 'abcdefabcdef', 'A'), + array('f', 'abcdefabcdef', 'f'), + array(false, 'abcdefabcdef', 'z'), + array(false, 'abcdefabcdef', ''), + array(false, 'abcdefabcdef', false), + array(false, 'abcdefabcdef', true), + array('123', '789456123', true), + array(false, '7894560123', false), + array(false, 'abcdefabcdef', null), + array(false, null, null), + array(false, null, 'a'), + array(false, null, '0'), + array(false, false, null), + array(false, false, 'a'), + array(false, false, '0'), + array(false, true, null), + array(false, true, 'a'), + array(false, true, '0'), + ); + } + + /** + * Test for PMA_StringNative::strtolower + * + * @param string $expected Expected lowercased string + * @param string $string String to convert to lowercase + * + * @return void + * @test + * @dataProvider providerStrtolower + */ + public function testStrtolower($expected, $string) + { + $this->assertEquals( + $expected, + mb_strtolower($string) + ); + } + + /** + * Data provider for testStrtolower + * + * @return array Test data + */ + public function providerStrtolower() + { + return array( + array("mary had a", "Mary Had A"), + array("test string", "TEST STRING") + ); + } +} -- cgit v1.2.3 From af2d548d19ecc74cd5001a8460db9afb22b91d98 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 28 Sep 2014 17:21:59 +0200 Subject: Fix typo. Signed-off-by: Hugues Peccatte --- test/libraries/stringNative_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/libraries/stringNative_test.php b/test/libraries/stringNative_test.php index 749bdb412f..1de4dc794d 100644 --- a/test/libraries/stringNative_test.php +++ b/test/libraries/stringNative_test.php @@ -25,7 +25,7 @@ class PMA_StringNativeTest extends PMA_StringTest { if (@function_exists('mb_strlen')) { $this->markTestSkipped( - "Multibyte functions exist, can't test standard functions skipping " + "Multibyte functions exist, can't test standard functions, skipping " . "test." ); } -- cgit v1.2.3 From 38eb5948a0e19991620b7d9c47c1dc0f284e291a Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 28 Sep 2014 18:19:30 +0200 Subject: Remove use of PMA_String in comments. Signed-off-by: Hugues Peccatte --- import_status.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/import_status.php b/import_status.php index 6b6e04b369..a6c49f4b79 100644 --- a/import_status.php +++ b/import_status.php @@ -32,11 +32,9 @@ if (version_compare(PHP_VERSION, '5.4.0', '>=') define('UPLOAD_PREFIX', ini_get('session.upload_progress.prefix')); session_start(); - /** @var PMA_String $pmaString / - $pmaString = $GLOBALS['PMA_String']; foreach ($_SESSION as $key => $value) { // only copy session-prefixed data - if ($pmaString->substr($key, 0, $pmaString->strlen(UPLOAD_PREFIX)) + if (mb_substr($key, 0, mb_strlen(UPLOAD_PREFIX)) == UPLOAD_PREFIX) { $sessionupload[$key] = $value; } @@ -64,11 +62,9 @@ if (defined('SESSIONUPLOAD')) { $_SESSION[$key] = $value; } - /** @var PMA_String $pmaString / - $pmaString = $GLOBALS['PMA_String']; // remove session upload data that are not set anymore foreach ($_SESSION as $key => $value) { - if ($pmaString->substr($key, 0, $pmaString->strlen(UPLOAD_PREFIX)) + if (mb_substr($key, 0, mb_strlen(UPLOAD_PREFIX)) == UPLOAD_PREFIX && ! isset($sessionupload[$key]) ) { -- cgit v1.2.3 From 3de88162ff628a50d220d559954362c21028cc65 Mon Sep 17 00:00:00 2001 From: Hugues Peccatte Date: Sun, 28 Sep 2014 20:53:01 +0200 Subject: Replace PMA_String uses by mb_* calls. Remove part of unused variables. Signed-off-by: Hugues Peccatte --- changelog.php | 2 +- db_operations.php | 4 +- db_printview.php | 2 +- examples/openid.php | 2 +- export.php | 6 +- file_echo.php | 6 +- gis_data_editor.php | 8 +- import.php | 24 ++-- index.php | 8 +- libraries/Advisor.class.php | 7 +- libraries/Config.class.php | 104 +++++++-------- libraries/DBQbe.class.php | 14 +- libraries/DatabaseInterface.class.php | 21 ++- libraries/DbSearch.class.php | 6 +- libraries/DisplayResults.class.php | 119 +++++++++-------- libraries/Error.class.php | 4 +- libraries/File.class.php | 2 +- libraries/Font.class.php | 10 +- libraries/Header.class.php | 8 +- libraries/Index.class.php | 6 +- libraries/List_Database.class.php | 4 +- libraries/Menu.class.php | 16 +-- libraries/Message.class.php | 8 +- libraries/PDF.class.php | 2 +- libraries/RecentFavoriteTable.class.php | 7 +- libraries/Response.class.php | 7 +- libraries/Scripts.class.php | 21 ++- libraries/ServerStatusData.class.php | 4 +- libraries/StorageEngine.class.php | 10 +- libraries/Table.class.php | 32 ++--- libraries/TableSearch.class.php | 10 +- libraries/Tracker.class.php | 66 +++++----- libraries/Types.class.php | 8 +- libraries/Util.class.php | 140 ++++++++++---------- libraries/bookmark.lib.php | 6 +- libraries/browse_foreigners.lib.php | 5 +- libraries/build_html_for_db.lib.php | 6 +- libraries/central_columns.lib.php | 7 +- libraries/check_user_privileges.lib.php | 17 +-- libraries/common.inc.php | 18 +-- libraries/config/Form.class.php | 6 +- libraries/config/FormDisplay.class.php | 8 +- libraries/config/FormDisplay.tpl.php | 2 +- libraries/config/ServerConfigChecks.class.php | 2 +- libraries/config/Validator.class.php | 6 +- libraries/core.lib.php | 35 ++--- libraries/db_common.inc.php | 4 +- libraries/db_designer.lib.php | 21 ++- libraries/db_table_exists.lib.php | 6 +- libraries/display_change_password.lib.php | 2 +- libraries/display_export.lib.php | 10 +- libraries/display_git_revision.lib.php | 2 +- libraries/error_report.lib.php | 6 +- libraries/export.lib.php | 46 +++---- libraries/file_listing.lib.php | 2 +- libraries/gis/GIS_Factory.class.php | 4 +- libraries/gis/GIS_Geometry.class.php | 18 +-- libraries/gis/GIS_Geometrycollection.class.php | 50 ++++---- libraries/gis/GIS_Linestring.class.php | 36 +++--- libraries/gis/GIS_Multilinestring.class.php | 44 +++---- libraries/gis/GIS_Multipoint.class.php | 42 +++--- libraries/gis/GIS_Multipolygon.class.php | 56 ++++---- libraries/gis/GIS_Point.class.php | 24 ++-- libraries/gis/GIS_Polygon.class.php | 44 +++---- libraries/gis/GIS_Visualization.class.php | 18 +-- libraries/iconv_wrapper.lib.php | 17 +-- libraries/import.lib.php | 55 ++++---- libraries/insert_edit.lib.php | 74 +++++------ libraries/ip_allow_deny.lib.php | 20 +-- libraries/mime.lib.php | 6 +- libraries/mult_submits.inc.php | 4 +- libraries/mult_submits.lib.php | 16 +-- libraries/navigation/NavigationHeader.class.php | 4 +- libraries/navigation/NavigationTree.class.php | 20 +-- libraries/navigation/Nodes/Node_Database.class.php | 2 +- libraries/normalization.lib.php | 2 +- libraries/operations.lib.php | 22 ++-- libraries/parse_analyze.inc.php | 2 +- libraries/plugin_interface.lib.php | 39 ++---- libraries/plugins/ImportPlugin.class.php | 5 +- .../plugins/auth/AuthenticationCookie.class.php | 7 +- libraries/plugins/export/ExportCsv.class.php | 4 +- libraries/plugins/export/ExportLatex.class.php | 17 +-- libraries/plugins/export/ExportSql.class.php | 45 +++---- libraries/plugins/export/ExportXml.class.php | 5 +- libraries/plugins/export/TableProperty.class.php | 44 +++---- libraries/plugins/import/ImportCsv.class.php | 29 ++--- libraries/plugins/import/ImportMediawiki.class.php | 25 ++-- libraries/plugins/import/ImportShp.class.php | 15 +-- libraries/plugins/import/ImportSql.class.php | 66 +++++----- .../schema/dia/Dia_Relation_Schema.class.php | 2 +- .../schema/eps/Eps_Relation_Schema.class.php | 2 +- .../schema/pdf/Pdf_Relation_Schema.class.php | 7 +- .../schema/svg/Svg_Relation_Schema.class.php | 2 +- .../DateFormatTransformationsPlugin.class.php | 21 ++- .../SubstringTransformationsPlugin.class.php | 10 +- libraries/pmd_common.php | 16 +-- libraries/relation.lib.php | 20 +-- libraries/replication.inc.php | 7 +- libraries/replication_gui.lib.php | 11 +- libraries/rte/rte_events.lib.php | 8 +- libraries/rte/rte_footer.lib.php | 6 +- libraries/rte/rte_main.inc.php | 2 +- libraries/rte/rte_routines.lib.php | 44 +++---- libraries/rte/rte_triggers.lib.php | 8 +- libraries/sanitizing.lib.php | 4 +- libraries/select_lang.lib.php | 9 +- libraries/server_databases.lib.php | 2 +- libraries/server_plugins.lib.php | 7 +- libraries/server_privileges.lib.php | 130 ++++++++++--------- libraries/server_status_monitor.lib.php | 28 ++-- libraries/server_status_processes.lib.php | 4 +- libraries/server_status_variables.lib.php | 6 +- libraries/server_user_groups.lib.php | 12 +- libraries/server_variables.lib.php | 2 +- libraries/sql.lib.php | 20 +-- libraries/sql_query_form.lib.php | 10 +- libraries/sqlparser.lib.php | 141 ++++++++++----------- libraries/structure.lib.php | 34 ++--- libraries/sysinfo.lib.php | 2 +- libraries/tbl_columns_definition_form.inc.php | 6 +- libraries/tbl_columns_definition_form.lib.php | 14 +- libraries/tbl_indexes.lib.php | 2 +- libraries/tbl_info.inc.php | 4 +- libraries/tbl_relation.lib.php | 22 ++-- libraries/tbl_tracking.lib.php | 26 ++-- libraries/transformations.lib.php | 28 ++-- libraries/url_generating.lib.php | 10 +- prefs_manage.php | 6 +- scripts/decode_bug.php | 2 +- setup/frames/index.inc.php | 2 +- setup/lib/ConfigGenerator.class.php | 2 +- sql.php | 6 +- tbl_addfield.php | 2 +- tbl_change.php | 2 +- tbl_chart.php | 6 +- tbl_create.php | 4 +- tbl_get_field.php | 2 +- tbl_operations.php | 6 +- tbl_printview.php | 4 +- transformation_wrapper.php | 2 +- 141 files changed, 1171 insertions(+), 1360 deletions(-) diff --git a/changelog.php b/changelog.php index 7d42ea185a..a7287f032c 100644 --- a/changelog.php +++ b/changelog.php @@ -23,7 +23,7 @@ $filename = CHANGELOG_FILE; if (is_readable($filename)) { // Test if the if is in a compressed format - if ($GLOBALS['PMA_String']->substr($filename, -3) == '.gz') { + if (/*overload*/mb_substr($filename, -3) == '.gz') { ob_start(); readgzfile($filename); $changelog = ob_get_contents(); diff --git a/db_operations.php b/db_operations.php index 9d48bb3009..3494e3c593 100644 --- a/db_operations.php +++ b/db_operations.php @@ -34,7 +34,7 @@ $scripts->addFile('db_operations.js'); */ /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; -if ($pmaString->strlen($GLOBALS['db']) +if (/*overload*/mb_strlen($GLOBALS['db']) && (! empty($_REQUEST['db_rename']) || ! empty($_REQUEST['db_copy'])) ) { if (! empty($_REQUEST['db_rename'])) { @@ -44,7 +44,7 @@ if ($pmaString->strlen($GLOBALS['db']) } if (! isset($_REQUEST['newname']) - || ! $pmaString->strlen($_REQUEST['newname']) + || ! /*overload*/mb_strlen($_REQUEST['newname']) ) { $message = PMA_Message::error(__('The database name is empty!')); } else { diff --git a/db_printview.php b/db_printview.php index 56edcbe9c4..1e4cf5ffb7 100644 --- a/db_printview.php +++ b/db_printview.php @@ -59,7 +59,7 @@ if ($num_tables == 0) { $odd_row = true; foreach ($tables as $sts_data) { if (PMA_Table::isMerge($db, $sts_data['TABLE_NAME']) - || $GLOBALS['PMA_String']->strtoupper($sts_data['ENGINE']) == 'FEDERATED' + || /*overload*/mb_strtoupper($sts_data['ENGINE']) == 'FEDERATED' ) { $merged_size = true; } else { diff --git a/examples/openid.php b/examples/openid.php index 804fa4c0a8..7d9c44b3c3 100644 --- a/examples/openid.php +++ b/examples/openid.php @@ -79,7 +79,7 @@ $base .= '://' . $_SERVER['SERVER_NAME'] . ':' . $_SERVER['SERVER_PORT']; $realm = $base . '/'; $returnTo = $base . dirname($_SERVER['PHP_SELF']); -if ($returnTo[$GLOBALS['PMA_String']->strlen($returnTo) - 1] != '/') { +if ($returnTo[/*overload*/mb_strlen($returnTo) - 1] != '/') { $returnTo .= '/'; } $returnTo .= 'openid.php'; diff --git a/export.php b/export.php index f861ac7be2..bbbe81cbdc 100644 --- a/export.php +++ b/export.php @@ -243,7 +243,7 @@ if (!defined('TESTSUITE')) { if ($export_type == 'server') { $err_url = 'server_export.php?' . PMA_URL_getCommon(); } elseif ($export_type == 'database' - && $pmaString->strlen($db) + && /*overload*/mb_strlen($db) ) { $err_url = 'db_export.php?' . PMA_URL_getCommon($db); // Check if we have something to export @@ -252,8 +252,8 @@ if (!defined('TESTSUITE')) { } else { $tables = array(); } - } elseif ($export_type == 'table' && $pmaString->strlen($db) - && $pmaString->strlen($table) + } elseif ($export_type == 'table' && /*overload*/mb_strlen($db) + && /*overload*/mb_strlen($table) ) { $err_url = 'tbl_export.php?' . PMA_URL_getCommon($db, $table); } else { diff --git a/file_echo.php b/file_echo.php index 21b16796e3..e4409779da 100644 --- a/file_echo.php +++ b/file_echo.php @@ -46,9 +46,9 @@ if (isset($_REQUEST['filename']) && isset($_REQUEST['image'])) { /* Decode data */ if ($extension != 'svg') { - $data = $pmaString->substr( + $data = /*overload*/mb_substr( $_REQUEST['image'], - $pmaString->strpos($_REQUEST['image'], ',') + 1 + /*overload*/mb_strpos($_REQUEST['image'], ',') + 1 ); $data = base64_decode($data); } else { @@ -59,7 +59,7 @@ if (isset($_REQUEST['filename']) && isset($_REQUEST['image'])) { PMA_downloadHeader( $filename, $_REQUEST['type'], - $pmaString->strlen($data) + /*overload*/mb_strlen($data) ); /* Send data */ diff --git a/gis_data_editor.php b/gis_data_editor.php index 57add856c2..66a0814359 100644 --- a/gis_data_editor.php +++ b/gis_data_editor.php @@ -47,14 +47,14 @@ $pmaString = $GLOBALS['PMA_String']; // Extract from field's values if available, if not use the column type passed. if (! isset($gis_data['gis_type'])) { if (isset($_REQUEST['type']) && $_REQUEST['type'] != '') { - $gis_data['gis_type'] = $pmaString->strtoupper($_REQUEST['type']); + $gis_data['gis_type'] = /*overload*/mb_strtoupper($_REQUEST['type']); } if (isset($_REQUEST['value']) && trim($_REQUEST['value']) != '') { - $start = ($pmaString->substr($_REQUEST['value'], 0, 1) == "'") ? 1 : 0; - $gis_data['gis_type'] = $pmaString->substr( + $start = (/*overload*/mb_substr($_REQUEST['value'], 0, 1) == "'") ? 1 : 0; + $gis_data['gis_type'] = /*overload*/mb_substr( $_REQUEST['value'], $start, - $pmaString->strpos($_REQUEST['value'], "(") - $start + /*overload*/mb_strpos($_REQUEST['value'], "(") - $start ); } if ((! isset($gis_data['gis_type'])) diff --git a/import.php b/import.php index 24dc56d422..3561e42c3f 100644 --- a/import.php +++ b/import.php @@ -240,17 +240,17 @@ if ($import_type == 'table') { $goto = 'server_import.php'; } else { if (empty($goto) || !preg_match('@^(server|db|tbl)(_[a-z]*)*\.php$@i', $goto)) { - if ($pmaString->strlen($table) && $pmaString->strlen($db)) { + if (/*overload*/mb_strlen($table) && /*overload*/mb_strlen($db)) { $goto = 'tbl_structure.php'; - } elseif ($pmaString->strlen($db)) { + } elseif (/*overload*/mb_strlen($db)) { $goto = 'db_structure.php'; } else { $goto = 'server_sql.php'; } } - if ($pmaString->strlen($table) && $pmaString->strlen($db)) { + if (/*overload*/mb_strlen($table) && /*overload*/mb_strlen($db)) { $common = PMA_URL_getCommon($db, $table); - } elseif ($pmaString->strlen($db)) { + } elseif (/*overload*/mb_strlen($db)) { $common = PMA_URL_getCommon($db); } else { $common = PMA_URL_getCommon(); @@ -268,7 +268,7 @@ if (basename($_SERVER['SCRIPT_NAME']) === 'import.php') { } -if ($pmaString->strlen($db)) { +if (/*overload*/mb_strlen($db)) { $GLOBALS['dbi']->selectDb($db); } @@ -392,13 +392,13 @@ if ($memory_limit == -1) { } // Calculate value of the limit -if ($pmaString->strtolower($pmaString->substr($memory_limit, -1)) == 'm') { - $memory_limit = (int)$pmaString->substr($memory_limit, 0, -1) * 1024 * 1024; -} elseif ($pmaString->strtolower($pmaString->substr($memory_limit, -1)) == 'k') { - $memory_limit = (int)$pmaString->substr($memory_limit, 0, -1) * 1024; -} elseif ($pmaString->strtolower($pmaString->substr($memory_limit, -1)) == 'g') { +if (/*overload*/mb_strtolower(/*overload*/mb_substr($memory_limit, -1)) == 'm') { + $memory_limit = (int)/*overload*/mb_substr($memory_limit, 0, -1) * 1024 * 1024; +} elseif (/*overload*/mb_strtolower(/*overload*/mb_substr($memory_limit, -1)) == 'k') { + $memory_limit = (int)/*overload*/mb_substr($memory_limit, 0, -1) * 1024; +} elseif (/*overload*/mb_strtolower(/*overload*/mb_substr($memory_limit, -1)) == 'g') { $memory_limit - = (int)$pmaString->substr($memory_limit, 0, -1) * 1024 * 1024 * 1024; + = (int)/*overload*/mb_substr($memory_limit, 0, -1) * 1024 * 1024 * 1024; } else { $memory_limit = (int)$memory_limit; } @@ -680,7 +680,7 @@ if (isset($message)) { // in case of a query typed in the query window // (but if the query is too large, in case of an imported file, the parser // can choke on it so avoid parsing) -if ($pmaString->strlen($sql_query) <= $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] +if (/*overload*/mb_strlen($sql_query) <= $GLOBALS['cfg']['MaxCharactersInDisplayedSQL'] ) { include_once 'libraries/parse_analyze.inc.php'; } diff --git a/index.php b/index.php index 42e03df39e..14de872bdb 100644 --- a/index.php +++ b/index.php @@ -562,8 +562,8 @@ if (isset($GLOBALS['dbi']) $_client_info = $GLOBALS['dbi']->getClientInfo(); if ($server > 0 - && $pmaString->strpos($_client_info, 'mysqlnd') === false - && $pmaString->substr(PMA_MYSQL_CLIENT_API, 0, 3) != $pmaString->substr( + && /*overload*/mb_strpos($_client_info, 'mysqlnd') === false + && /*overload*/mb_substr(PMA_MYSQL_CLIENT_API, 0, 3) != /*overload*/mb_substr( PMA_MYSQL_INT_VERSION, 0, 3 ) ) { @@ -572,10 +572,10 @@ if (isset($GLOBALS['dbi']) sprintf( __('Your PHP MySQL library version %s differs from your MySQL server version %s. This may cause unpredictable behavior.'), $_client_info, - $pmaString->substr( + /*overload*/mb_substr( PMA_MYSQL_STR_VERSION, 0, - $pmaString->strpos(PMA_MYSQL_STR_VERSION . '-', '-') + /*overload*/mb_strpos(PMA_MYSQL_STR_VERSION . '-', '-') ) ) ), diff --git a/libraries/Advisor.class.php b/libraries/Advisor.class.php index 593d55a996..5acb759ead 100644 --- a/libraries/Advisor.class.php +++ b/libraries/Advisor.class.php @@ -382,9 +382,6 @@ class Advisor $ruleNo = -1; $ruleLine = -1; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - for ($i = 0; $i < $numLines; $i++) { $line = $file[$i]; if ($line == "" || $line[0] == '#') { @@ -392,7 +389,7 @@ class Advisor } // Reading new rule - if ($pmaString->substr($line, 0, 4) == 'rule') { + if (/*overload*/mb_substr($line, 0, 4) == 'rule') { if ($ruleLine > 0) { $errors[] = sprintf( __( @@ -447,7 +444,7 @@ class Advisor continue; } $rules[$ruleNo][$ruleSyntax[$ruleLine]] = chop( - $pmaString->substr($line, 1) + /*overload*/mb_substr($line, 1) ); $lines[$ruleNo][$ruleSyntax[$ruleLine]] = $i + 1; $ruleLine += 1; diff --git a/libraries/Config.class.php b/libraries/Config.class.php index 24e6776d0d..dcb6b5b3ef 100644 --- a/libraries/Config.class.php +++ b/libraries/Config.class.php @@ -148,7 +148,7 @@ class PMA_Config } // disable output-buffering (if set to 'auto') for IE6, else enable it. - if ($GLOBALS['PMA_String']->strtolower($this->get('OBGzip')) == 'auto') { + if (/*overload*/mb_strtolower($this->get('OBGzip')) == 'auto') { if ($this->get('PMA_USR_BROWSER_AGENT') == 'IE' && $this->get('PMA_USR_BROWSER_VER') >= 6 && $this->get('PMA_USR_BROWSER_VER') < 7 @@ -176,19 +176,16 @@ class PMA_Config $HTTP_USER_AGENT = ''; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // 1. Platform - if ($pmaString->strstr($HTTP_USER_AGENT, 'Win')) { + if (/*overload*/mb_strstr($HTTP_USER_AGENT, 'Win')) { $this->set('PMA_USR_OS', 'Win'); - } elseif ($pmaString->strstr($HTTP_USER_AGENT, 'Mac')) { + } elseif (/*overload*/mb_strstr($HTTP_USER_AGENT, 'Mac')) { $this->set('PMA_USR_OS', 'Mac'); - } elseif ($pmaString->strstr($HTTP_USER_AGENT, 'Linux')) { + } elseif (/*overload*/mb_strstr($HTTP_USER_AGENT, 'Linux')) { $this->set('PMA_USR_OS', 'Linux'); - } elseif ($pmaString->strstr($HTTP_USER_AGENT, 'Unix')) { + } elseif (/*overload*/mb_strstr($HTTP_USER_AGENT, 'Unix')) { $this->set('PMA_USR_OS', 'Unix'); - } elseif ($pmaString->strstr($HTTP_USER_AGENT, 'OS/2')) { + } elseif (/*overload*/mb_strstr($HTTP_USER_AGENT, 'OS/2')) { $this->set('PMA_USR_OS', 'OS/2'); } else { $this->set('PMA_USR_OS', 'Other'); @@ -263,7 +260,7 @@ class PMA_Config ); $this->set('PMA_USR_BROWSER_AGENT', 'SAFARI'); // Firefox - } elseif (! $pmaString->strstr($HTTP_USER_AGENT, 'compatible') + } elseif (! /*overload*/mb_strstr($HTTP_USER_AGENT, 'compatible') && preg_match('@Firefox/([\w.]+)@', $HTTP_USER_AGENT, $log_version) ) { $this->set( @@ -306,7 +303,7 @@ class PMA_Config if (@function_exists('gd_info')) { $gd_nfo = gd_info(); - if ($GLOBALS['PMA_String']->strstr($gd_nfo["GD Version"], '2.')) { + if (/*overload*/mb_strstr($gd_nfo["GD Version"], '2.')) { $this->set('PMA_IS_GD2', 1); } else { $this->set('PMA_IS_GD2', 0); @@ -435,15 +432,13 @@ class PMA_Config return; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; $branch = false; // are we on any branch? //@TODO Implement strstr in PMA_String - if ($pmaString->strstr($ref_head, '/')) { - $ref_head = $pmaString->substr(trim($ref_head), 5); - if ($pmaString->substr($ref_head, 0, 11) === 'refs/heads/') { - $branch = $pmaString->substr($ref_head, 11); + if (/*overload*/mb_strstr($ref_head, '/')) { + $ref_head = /*overload*/mb_substr(trim($ref_head), 5); + if (/*overload*/mb_substr($ref_head, 0, 11) === 'refs/heads/') { + $branch = /*overload*/mb_substr($ref_head, 11); } else { $branch = basename($ref_head); } @@ -492,8 +487,8 @@ class PMA_Config $commit = false; if (! isset($_SESSION['PMA_VERSION_COMMITDATA_' . $hash])) { $git_file_name = $git_folder . '/objects/' - . $pmaString->substr($hash, 0, 2) - . '/' . $pmaString->substr($hash, 2); + . /*overload*/mb_substr($hash, 0, 2) + . '/' . /*overload*/mb_substr($hash, 2); if (file_exists($git_file_name) ) { if (! $commit = @file_get_contents($git_file_name)) { return; @@ -512,7 +507,7 @@ class PMA_Config // packs. (to look for them in .git/object/pack directory later) foreach (explode("\n", $packs) as $line) { // skip blank lines - if ($pmaString->strlen(trim($line)) == 0) { + if (/*overload*/mb_strlen(trim($line)) == 0) { continue; } // skip non pack lines @@ -520,7 +515,7 @@ class PMA_Config continue; } // parse names - $pack_names[] = $pmaString->substr($line, 2); + $pack_names[] = /*overload*/mb_substr($line, 2); } } else { // '.git/objects/info/packs' file can be missing @@ -535,13 +530,13 @@ class PMA_Config $file_name = $file_info->getFilename(); // if this is a .pack file if ($file_info->isFile() - && $pmaString->substr($file_name, -5) == '.pack' + && /*overload*/mb_substr($file_name, -5) == '.pack' ) { $pack_names[] = $file_name; } } } - $hash = $pmaString->strtolower($hash); + $hash = /*overload*/mb_strtolower($hash); foreach ($pack_names as $pack_name) { $index_name = str_replace('.pack', '.idx', $pack_name); @@ -553,22 +548,22 @@ class PMA_Config continue; } // check format - if ($pmaString->substr($index_data, 0, 4) != "\377tOc") { + if (/*overload*/mb_substr($index_data, 0, 4) != "\377tOc") { continue; } // check version - $version = unpack('N', $pmaString->substr($index_data, 4, 4)); + $version = unpack('N', /*overload*/mb_substr($index_data, 4, 4)); if ($version[1] != 2) { continue; } // parse fanout table $fanout = unpack( "N*", - $pmaString->substr($index_data, 8, 256 * 4) + /*overload*/mb_substr($index_data, 8, 256 * 4) ); // find where we should search - $firstbyte = intval($pmaString->substr($hash, 0, 2), 16); + $firstbyte = intval(/*overload*/mb_substr($hash, 0, 2), 16); // array is indexed from 1 and we need to get // previous entry for start if ($firstbyte == 0) { @@ -582,9 +577,9 @@ class PMA_Config $found = false; $offset = 8 + (256 * 4); for ($position = $start; $position < $end; $position++) { - $sha = $pmaString->strtolower( + $sha = /*overload*/mb_strtolower( bin2hex( - $pmaString->substr( + /*overload*/mb_substr( $index_data, $offset + ($position * 20), 20 ) ) @@ -601,7 +596,7 @@ class PMA_Config $offset = 8 + (256 * 4) + (24 * $fanout[256]); $pack_offset = unpack( 'N', - $pmaString->substr($index_data, $offset + ($position * 4), 4) + /*overload*/mb_substr($index_data, $offset + ($position * 4), 4) ); $pack_offset = $pack_offset[1]; @@ -616,14 +611,14 @@ class PMA_Config fseek($pack_file, $pack_offset); // parse header - $header = $pmaString->ord(fread($pack_file, 1)); + $header = /*overload*/mb_ord(fread($pack_file, 1)); $type = ($header >> 4) & 7; $hasnext = ($header & 128) >> 7; $size = $header & 0xf; $offset = 4; while ($hasnext) { - $byte = $pmaString->ord(fread($pack_file, 1)); + $byte = /*overload*/mb_ord(fread($pack_file, 1)); $size |= ($byte & 0x7f) << $offset; $hasnext = ($byte & 128) >> 7; $offset += 7; @@ -787,21 +782,19 @@ class PMA_Config $httpOk = 'HTTP/1.1 200 OK'; $httpNotFound = 'HTTP/1.1 404 Not Found'; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->substr($data, 0, $pmaString->strlen($httpOk)) === $httpOk) { + if (/*overload*/mb_substr($data, 0, /*overload*/mb_strlen($httpOk)) === $httpOk) { return $get_body - ? $pmaString->substr( + ? /*overload*/mb_substr( $data, - $pmaString->strpos($data, "\r\n\r\n") + 4 + /*overload*/mb_strpos($data, "\r\n\r\n") + 4 ) : true; } - $httpNOK = $pmaString->substr( + $httpNOK = /*overload*/mb_substr( $data, 0, - $pmaString->strlen($httpNotFound) + /*overload*/mb_strlen($httpNotFound) ); if ($httpNOK === $httpNotFound) { return false; @@ -1297,9 +1290,7 @@ class PMA_Config $pma_absolute_uri = $this->get('PmaAbsoluteUri'); $is_https = $this->detectHttps(); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($pma_absolute_uri) < 5) { + if (/*overload*/mb_strlen($pma_absolute_uri) < 5) { $url = array(); // If we don't have scheme, we didn't have full URL so we need to @@ -1395,7 +1386,7 @@ class PMA_Config $path = ''; } // in vhost situations, there could be already an ending slash - if ($pmaString->substr($path, -1) != '/') { + if (/*overload*/mb_substr($path, -1) != '/') { $path .= '/'; } $pma_absolute_uri .= $path; @@ -1417,20 +1408,20 @@ class PMA_Config // Adds a trailing slash et the end of the phpMyAdmin uri if it // does not exist. - if ($pmaString->substr($pma_absolute_uri, -1) != '/') { + if (/*overload*/mb_substr($pma_absolute_uri, -1) != '/') { $pma_absolute_uri .= '/'; } // If URI doesn't start with http:// or https://, we will add // this. - if ($pmaString->substr($pma_absolute_uri, 0, 7) != 'http://' - && $pmaString->substr($pma_absolute_uri, 0, 8) != 'https://' + if (/*overload*/mb_substr($pma_absolute_uri, 0, 7) != 'http://' + && /*overload*/mb_substr($pma_absolute_uri, 0, 8) != 'https://' ) { $pma_absolute_uri = ($is_https ? 'https' : 'http') . ':' . ( - $pmaString->substr($pma_absolute_uri, 0, 2) == '//' ? '' : '//' + /*overload*/mb_substr($pma_absolute_uri, 0, 2) == '//' ? '' : '//' ) . $pma_absolute_uri; } @@ -1525,7 +1516,7 @@ class PMA_Config $this->set('enable_upload', true); // if set "php_admin_value file_uploads Off" in httpd.conf // ini_get() also returns the string "Off" in this case: - if ('off' == $GLOBALS['PMA_String']->strtolower(ini_get('file_uploads'))) { + if ('off' == /*overload*/mb_strtolower(ini_get('file_uploads'))) { $this->set('enable_upload', false); } } @@ -1602,9 +1593,6 @@ class PMA_Config } } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // If we don't have scheme, we didn't have full URL so we need to // dig deeper if (empty($url['scheme'])) { @@ -1612,19 +1600,19 @@ class PMA_Config if (PMA_getenv('HTTP_SCHEME')) { $url['scheme'] = PMA_getenv('HTTP_SCHEME'); } elseif (PMA_getenv('HTTPS') - && $pmaString->strtolower(PMA_getenv('HTTPS')) == 'on' + && /*overload*/mb_strtolower(PMA_getenv('HTTPS')) == 'on' ) { $url['scheme'] = 'https'; // A10 Networks load balancer: } elseif (PMA_getenv('HTTP_HTTPS_FROM_LB') - && $pmaString->strtolower(PMA_getenv('HTTP_HTTPS_FROM_LB')) == 'on' + && /*overload*/mb_strtolower(PMA_getenv('HTTP_HTTPS_FROM_LB')) == 'on' ) { $url['scheme'] = 'https'; } elseif (PMA_getenv('HTTP_X_FORWARDED_PROTO')) { $url['scheme'] - = $pmaString->strtolower(PMA_getenv('HTTP_X_FORWARDED_PROTO')); + = /*overload*/mb_strtolower(PMA_getenv('HTTP_X_FORWARDED_PROTO')); } elseif (PMA_getenv('HTTP_FRONT_END_HTTPS') - && $pmaString->strtolower(PMA_getenv('HTTP_FRONT_END_HTTPS')) == 'on' + && /*overload*/mb_strtolower(PMA_getenv('HTTP_FRONT_END_HTTPS')) == 'on' ) { $url['scheme'] = 'https'; } else { @@ -1863,9 +1851,7 @@ class PMA_Config function setCookie($cookie, $value, $default = null, $validity = null, $httponly = true ) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($value) && null !== $default && $value === $default) { + if (/*overload*/mb_strlen($value) && null !== $default && $value === $default) { // default value is used if (isset($_COOKIE[$cookie])) { // remove cookie @@ -1874,7 +1860,7 @@ class PMA_Config return false; } - if (!$pmaString->strlen($value) && isset($_COOKIE[$cookie])) { + if (!/*overload*/mb_strlen($value) && isset($_COOKIE[$cookie])) { // remove cookie, value is empty return $this->removeCookie($cookie); } diff --git a/libraries/DBQbe.class.php b/libraries/DBQbe.class.php index e22b92a45d..e551cbfed1 100644 --- a/libraries/DBQbe.class.php +++ b/libraries/DBQbe.class.php @@ -334,7 +334,7 @@ class PMA_DbQbe $this->_columnNames[] = $each_column; // increase the width if necessary $this->_form_column_width = max( - $GLOBALS['PMA_String']->strlen($each_column), + /*overload*/mb_strlen($each_column), $this->_form_column_width ); } // end foreach @@ -481,7 +481,7 @@ class PMA_DbQbe // then sorting is not available, Fix for Bug #570698 if (isset($_REQUEST['criteriaSort'][$colInd]) && isset($_REQUEST['criteriaColumn'][$colInd]) - && $pmaStr->substr($_REQUEST['criteriaColumn'][$colInd], -2) == '.*' + && /*overload*/mb_substr($_REQUEST['criteriaColumn'][$colInd], -2) == '.*' ) { $_REQUEST['criteriaSort'][$colInd] = ''; } //end if @@ -1016,7 +1016,7 @@ class PMA_DbQbe && isset($this->_curAndOrCol) ) { $where_clause .= ' ' - . $pmaString->strtoupper($this->_curAndOrCol[$last_where]) . ' '; + . /*overload*/mb_strtoupper($this->_curAndOrCol[$last_where]) . ' '; } if (! empty($this->_curField[$column_index]) && ! empty($this->_curCriteria[$column_index]) @@ -1052,7 +1052,7 @@ class PMA_DbQbe && $column_index ) { $qry_orwhere .= ' ' - . $pmaString->strtoupper($this->_curAndOrCol[$last_orwhere]) + . /*overload*/mb_strtoupper($this->_curAndOrCol[$last_orwhere]) . ' '; } if (! empty($this->_curField[$column_index]) @@ -1071,7 +1071,7 @@ class PMA_DbQbe } if (! empty($qry_orwhere)) { $where_clause .= "\n" - . $pmaString->strtoupper( + . /*overload*/mb_strtoupper( isset($this->_curAndOrRow[$row_index]) ? $this->_curAndOrRow[$row_index] . ' ' : '' @@ -1113,7 +1113,7 @@ class PMA_DbQbe continue; } - if ($pmaString->substr($this->_curField[$column_index], -2) == '.*') { + if (/*overload*/mb_substr($this->_curField[$column_index], -2) == '.*') { continue; } @@ -1342,7 +1342,7 @@ class PMA_DbQbe // Now we know that our array has the same numbers as $criteria // we can check which of our columns has a where clause if (! empty($this->_criteria[$column_index])) { - if ($pmaString->substr($this->_criteria[$column_index], 0, 1) == '=' + if (/*overload*/mb_substr($this->_criteria[$column_index], 0, 1) == '=' || /*$pmaString->*/stristr($this->_criteria[$column_index], 'is') ) { $where_clause_columns[$column] = $column; diff --git a/libraries/DatabaseInterface.class.php b/libraries/DatabaseInterface.class.php index caf0e1d2ff..95764c363d 100644 --- a/libraries/DatabaseInterface.class.php +++ b/libraries/DatabaseInterface.class.php @@ -505,7 +505,7 @@ class PMA_DatabaseInterface // Drizzle generally uses lower case for them, // but TABLES returns uppercase foreach ((array)$database as $db) { - $db_upper = $pmaString->strtoupper($db); + $db_upper = /*overload*/mb_strtoupper($db); if (!isset($tables[$db]) && isset($tables[$db_upper])) { $tables[$db] = $tables[$db_upper]; unset($tables[$db_upper]); @@ -554,14 +554,14 @@ class PMA_DatabaseInterface return $tables[$database]; } - if (isset($tables[$pmaString->strtolower($database)])) { + if (isset($tables[/*overload*/mb_strtolower($database)])) { // on windows with lower_case_table_names = 1 // MySQL returns // with SHOW DATABASES or information_schema.SCHEMATA: `Test` // but information_schema.TABLES gives `test` // bug #2036 // https://sourceforge.net/p/phpmyadmin/bugs/2036/ - return $tables[$pmaString->strtolower($database)]; + return $tables[/*overload*/mb_strtolower($database)]; } // one database but inexact letter case match @@ -572,7 +572,7 @@ class PMA_DatabaseInterface } $keys = array_keys($tables); - if ($pmaString->strlen(array_pop($keys)) == $pmaString->strlen($database)) { + if (/*overload*/mb_strlen(array_pop($keys)) == /*overload*/mb_strlen($database)) { return array_pop($tables); } return $tables; @@ -647,8 +647,7 @@ class PMA_DatabaseInterface $tables[$table_name]['TABLE_COMMENT'] =& $tables[$table_name]['Comment']; - $commentUpper = $GLOBALS['PMA_String'] - ->strtoupper($tables[$table_name]['Comment']); + $commentUpper = /*overload*/mb_strtoupper($tables[$table_name]['Comment']); if ($commentUpper === 'VIEW' && $tables[$table_name]['Engine'] == null ) { @@ -710,7 +709,7 @@ class PMA_DatabaseInterface $link = null, $sort_by = 'SCHEMA_NAME', $sort_order = 'ASC', $limit_offset = 0, $limit_count = false ) { - $sort_order = $GLOBALS['PMA_String']->strtoupper($sort_order); + $sort_order = /*overload*/mb_strtoupper($sort_order); if (true === $limit_count) { $limit_count = $GLOBALS['cfg']['MaxDbList']; @@ -1844,7 +1843,7 @@ class PMA_DatabaseInterface $error .= ' - ' . $error_message; $error .= '
' . __('The server is not responding.'); } elseif ($error_number == 1005) { - if ($GLOBALS['PMA_String']->strpos($error_message, 'errno: 13') !== false + if (/*overload*/mb_strpos($error_message, 'errno: 13') !== false ) { $error .= ' - ' . $error_message; $error .= '
' @@ -1968,11 +1967,11 @@ class PMA_DatabaseInterface { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - return $pmaString->strtolower($schema_name) == 'information_schema' + return /*overload*/mb_strtolower($schema_name) == 'information_schema' || (!PMA_DRIZZLE - && $pmaString->strtolower($schema_name) == 'performance_schema') + && /*overload*/mb_strtolower($schema_name) == 'performance_schema') || (PMA_DRIZZLE - && $pmaString->strtolower($schema_name) == 'data_dictionary') + && /*overload*/mb_strtolower($schema_name) == 'data_dictionary') || ($testForMysqlSchema && !PMA_DRIZZLE && $schema_name == 'mysql'); } diff --git a/libraries/DbSearch.class.php b/libraries/DbSearch.class.php index d0832787dd..ffafa66b56 100644 --- a/libraries/DbSearch.class.php +++ b/libraries/DbSearch.class.php @@ -214,18 +214,16 @@ class PMA_DbSearch ? array($this->_criteriaSearchString) : explode(' ', $this->_criteriaSearchString)); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; foreach ($search_words as $search_word) { // Eliminates empty values - if ($pmaString->strlen($search_word) === 0) { + if (/*overload*/mb_strlen($search_word) === 0) { continue; } $likeClausesPerColumn = array(); // for each column in the table foreach ($allColumns as $column) { if (! isset($this->_criteriaColumnName) - || $pmaString->strlen($this->_criteriaColumnName) == 0 + || /*overload*/mb_strlen($this->_criteriaColumnName) == 0 || $column['Field'] == $this->_criteriaColumnName ) { // Drizzle has no CONVERT and all text columns are UTF-8 diff --git a/libraries/DisplayResults.class.php b/libraries/DisplayResults.class.php index e21468e7f4..feb0f45d0f 100644 --- a/libraries/DisplayResults.class.php +++ b/libraries/DisplayResults.class.php @@ -437,9 +437,9 @@ class PMA_DisplayResults $bIsProcessList = isset($which[1]); if ($bIsProcessList) { - $str = ' ' . $pmaString->strtoupper($which[1]); + $str = ' ' . /*overload*/mb_strtoupper($which[1]); $bIsProcessList = $bIsProcessList - && $pmaString->strpos($str, 'PROCESSLIST') > 0; + && /*overload*/mb_strpos($str, 'PROCESSLIST') > 0; } if ($bIsProcessList) { @@ -509,7 +509,7 @@ class PMA_DisplayResults $the_total = $unlim_num_rows; } elseif ((($do_display['nav_bar'] == '1') || ($do_display['sort_lnk'] == '1')) - && ($pmaString->strlen($db) && !empty($table)) + && (/*overload*/mb_strlen($db) && !empty($table)) ) { $the_total = PMA_Table::countRecords($db, $table); } @@ -1851,7 +1851,7 @@ class PMA_DisplayResults // FROM `PMA_relation` AS `1` , `PMA_relation` AS `2` $sort_tbl = (isset($fields_meta->table) - && $GLOBALS['PMA_String']->strlen($fields_meta->table)) + && /*overload*/mb_strlen($fields_meta->table)) ? PMA_Util::backquote( $fields_meta->table ) . '.' @@ -1966,7 +1966,7 @@ class PMA_DisplayResults $sort_tbl_new = $sort_tbl; // Test to detect if the column name is a standard name // Standard name has the table name prefixed to the column name - if ($pmaString->strpos($name_to_use_in_sort, '.') !== false) { + if (/*overload*/mb_strpos($name_to_use_in_sort, '.') !== false) { $matches = explode('.', $name_to_use_in_sort); // Matches[0] has the table name // Matches[1] has the column name @@ -1984,7 +1984,7 @@ class PMA_DisplayResults // order by clause to the column name $query_head = $is_first_clause ? "\nORDER BY " : ""; // Again a check to see if the given column is a aggregate column - if ($pmaString->strpos($name_to_use_in_sort, '(') !== false) { + if (/*overload*/mb_strpos($name_to_use_in_sort, '(') !== false) { $sort_order .= $query_head . $name_to_use_in_sort . ' ' ; } else { $sort_order .= $query_head . $sort_tbl_new . "." @@ -1998,7 +1998,7 @@ class PMA_DisplayResults $sort_order = preg_replace("/\.\./", ".", $sort_order); // Incase this is the current column save $single_sort_order if ($current_name == $name_to_use_in_sort) { - if ($pmaString->strpos($current_name, '(') !== false) { + if (/*overload*/mb_strpos($current_name, '(') !== false) { $single_sort_order = "\n" . 'ORDER BY ' . $current_name . ' '; } else { $single_sort_order = "\n" . 'ORDER BY ' . $sort_tbl @@ -2011,8 +2011,7 @@ class PMA_DisplayResults $sort_direction, $single_sort_order, $column_index, $index ); } else { - $single_sort_order .= $pmaString - ->strtoupper($sort_direction[$index]); + $single_sort_order .= /*overload*/mb_strtoupper($sort_direction[$index]); } } if ($current_name == $name_to_use_in_sort && $is_in_sort) { @@ -2022,7 +2021,7 @@ class PMA_DisplayResults ); $order_img .= " " . ($index + 1) . ""; } else { - $sort_order .= $pmaString->strtoupper($sort_direction[$index]); + $sort_order .= /*overload*/mb_strtoupper($sort_direction[$index]); } // Separate columns by a comma $sort_order .= ", "; @@ -2031,10 +2030,10 @@ class PMA_DisplayResults } // remove the comma from the last column name in the newly // constructed clause - $sort_order = $pmaString->substr( + $sort_order = /*overload*/mb_substr( $sort_order, 0, - $pmaString->strlen($sort_order)-2 + /*overload*/mb_strlen($sort_order)-2 ); if (empty($order_img)) { $order_img = ''; @@ -2066,7 +2065,7 @@ class PMA_DisplayResults /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; foreach ($sort_expression_nodirection as $index => $clause) { - if ($pmaString->strpos($clause, '.') !== false) { + if (/*overload*/mb_strpos($clause, '.') !== false) { $fragments = explode('.', $clause); $clause2 = $fragments[0] . "." . str_replace('`', '', $fragments[1]); } else { @@ -2090,8 +2089,8 @@ class PMA_DisplayResults // SELECT p.*, FROM_UNIXTIME(p.temps) FROM mytable AS p // (and try clicking on each column's header twice) if (! empty($sort_tbl) - && $pmaString->strpos($sort_expression_nodirection[$index_in_expression], $sort_tbl) === false - && $pmaString->strpos($sort_expression_nodirection[$index_in_expression], '(') === false + && /*overload*/mb_strpos($sort_expression_nodirection[$index_in_expression], $sort_tbl) === false + && /*overload*/mb_strpos($sort_expression_nodirection[$index_in_expression], '(') === false ) { $new_sort_expression_nodirection = $sort_tbl . $sort_expression_nodirection[$index_in_expression]; @@ -2136,7 +2135,7 @@ class PMA_DisplayResults private function _getSortingUrlParams( $sort_direction, $sort_order, $column_index, $index ) { - if ($GLOBALS['PMA_String']->strtoupper(trim($sort_direction[$index])) == self::DESCENDING_SORT_DIR) { + if (/*overload*/mb_strtoupper(trim($sort_direction[$index])) == self::DESCENDING_SORT_DIR) { $sort_order .= ' ASC'; $order_img = ' ' . PMA_Util::getImage( 's_desc.png', __('Descending'), @@ -2185,10 +2184,10 @@ class PMA_DisplayResults $order_link_params = array(); if (isset($order_img) && ($order_img != '')) { - if ($pmaString->strstr($order_img, 'asc')) { + if (/*overload*/mb_strstr($order_img, 'asc')) { $order_link_params['onmouseover'] = "$('.soimg$col_index').toggle()"; $order_link_params['onmouseout'] = "$('.soimg$col_index').toggle()"; - } elseif ($pmaString->strstr($order_img, 'desc')) { + } elseif (/*overload*/mb_strstr($order_img, 'desc')) { $order_link_params['onmouseover'] = "$('.soimg$col_index').toggle()"; $order_link_params['onmouseout'] = "$('.soimg$col_index').toggle()"; } @@ -2561,12 +2560,12 @@ class PMA_DisplayResults /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; foreach ($matches as $key => $value) { - if ($pmaString->strpos($meta->flags, $key) !== false) { + if (/*overload*/mb_strpos($meta->flags, $key) !== false) { $classes[] = $value; } } - if ($pmaString->strpos($meta->type, 'bit') !== false) { + if (/*overload*/mb_strpos($meta->type, 'bit') !== false) { $classes[] = 'bit'; } @@ -2937,18 +2936,18 @@ class PMA_DisplayResults // Check whether the field needs to display with syntax highlighting - if (! empty($this->transformation_info[$pmaString->strtolower($this->__get('db'))][$pmaString->strtolower($this->__get('table'))][$pmaString->strtolower($meta->name)]) + if (! empty($this->transformation_info[/*overload*/mb_strtolower($this->__get('db'))][/*overload*/mb_strtolower($this->__get('table'))][/*overload*/mb_strtolower($meta->name)]) && (trim($row[$i]) != '') ) { $row[$i] = PMA_Util::formatSql($row[$i]); include_once $this->transformation_info - [$pmaString->strtolower($this->__get('db'))] - [$pmaString->strtolower($this->__get('table'))] - [$pmaString->strtolower($meta->name)][0]; + [/*overload*/mb_strtolower($this->__get('db'))] + [/*overload*/mb_strtolower($this->__get('table'))] + [/*overload*/mb_strtolower($meta->name)][0]; $transformation_plugin = new $this->transformation_info - [$pmaString->strtolower($this->__get('db'))] - [$pmaString->strtolower($this->__get('table'))] - [$pmaString->strtolower($meta->name)][1](null); + [/*overload*/mb_strtolower($this->__get('db'))] + [/*overload*/mb_strtolower($this->__get('table'))] + [/*overload*/mb_strtolower($meta->name)][1](null); $transform_options = PMA_Transformation_getOptions( isset($mime_map[$meta->name]['transformation_options']) @@ -2956,12 +2955,12 @@ class PMA_DisplayResults : '' ); - $dbLower = $pmaString->strtolower($this->__get('db')); + $dbLower = /*overload*/mb_strtolower($this->__get('db')); $meta->mimetype = str_replace( '_', '/', $this->transformation_info[$dbLower] - [$pmaString->strtolower($this->__get('table'))] - [$pmaString->strtolower($meta->name)][2] + [/*overload*/mb_strtolower($this->__get('table'))] + [/*overload*/mb_strtolower($meta->name)][2] ); } @@ -2970,11 +2969,11 @@ class PMA_DisplayResults include_once 'libraries/special_schema_links.lib.php'; if (isset($GLOBALS['special_schema_links']) - && (! empty($GLOBALS['special_schema_links'][$pmaString->strtolower($this->__get('db'))][$pmaString->strtolower($this->__get('table'))][$pmaString->strtolower($meta->name)])) + && (! empty($GLOBALS['special_schema_links'][/*overload*/mb_strtolower($this->__get('db'))][/*overload*/mb_strtolower($this->__get('table'))][/*overload*/mb_strtolower($meta->name)])) ) { $linking_url = $this->_getSpecialLinkUrl( - $row[$i], $row_info, $pmaString->strtolower($meta->name) + $row[$i], $row_info, /*overload*/mb_strtolower($meta->name) ); include_once "libraries/plugins/transformations/Text_Plain_Link.class.php"; @@ -3179,8 +3178,8 @@ class PMA_DisplayResults $pmaString = $GLOBALS['PMA_String']; $linking_url_params = array(); $link_relations = $GLOBALS['special_schema_links'] - [$pmaString->strtolower($this->__get('db'))] - [$pmaString->strtolower($this->__get('table'))] + [/*overload*/mb_strtolower($this->__get('db'))] + [/*overload*/mb_strtolower($this->__get('table'))] [$field_name]; if (! is_array($link_relations['link_param'])) { @@ -3210,7 +3209,7 @@ class PMA_DisplayResults } $linking_url_params[$new_param['param_info']] - = $row_info[$pmaString->strtolower($new_param['column_name'])]; + = $row_info[/*overload*/mb_strtolower($new_param['column_name'])]; // Special case 1 - when executing routines, according // to the type of the routine, url param changes @@ -3218,7 +3217,7 @@ class PMA_DisplayResults continue; } - $lowerRoutineType = $pmaString->strtolower($row_info['routine_type']); + $lowerRoutineType = /*overload*/mb_strtolower($row_info['routine_type']); if ($lowerRoutineType == self::ROUTINE_PROCEDURE || $lowerRoutineType == self::ROUTINE_FUNCTION ) { @@ -3248,7 +3247,7 @@ class PMA_DisplayResults for ($n = 0; $n < $this->__get('fields_cnt'); ++$n) { $m = $col_order ? $col_order[$n] : $n; - $row_info[$GLOBALS['PMA_String']->strtolower($fields_meta[$m]->name)] + $row_info[/*overload*/mb_strtolower($fields_meta[$m]->name)] = $row[$m]; } @@ -3275,7 +3274,7 @@ class PMA_DisplayResults && isset($analyzed_sql[0]) && isset($analyzed_sql[0]['querytype']) && ($analyzed_sql[0]['querytype'] == self::QUERY_TYPE_SELECT) - && ($GLOBALS['PMA_String']->strlen($this->__get('sql_query')) > 200) + && (/*overload*/mb_strlen($this->__get('sql_query')) > 200) ) { $url_sql_query = 'SELECT '; @@ -3673,7 +3672,7 @@ class PMA_DisplayResults */ private function _getClassForDateTimeRelatedFields($type) { - if (($GLOBALS['PMA_String']->substr($type, 0, 9) == self::TIMESTAMP_FIELD) + if ((/*overload*/mb_substr($type, 0, 9) == self::TIMESTAMP_FIELD) || ($type == self::DATETIME_FIELD) ) { $field_type_class = 'datetimefield'; @@ -3791,7 +3790,7 @@ class PMA_DisplayResults // Display as [GEOMETRY - (size)] if ($_SESSION['tmpval']['geoOption'] == self::GEOMETRY_DISP_GEOM) { $geometry_text = $this->_handleNonPrintableContents( - $pmaString->strtoupper(self::GEOMETRY_FIELD), + /*overload*/mb_strtoupper(self::GEOMETRY_FIELD), (isset($column) ? $column : ''), $transformation_plugin, $transform_options, $default_function, $meta ); @@ -3824,7 +3823,7 @@ class PMA_DisplayResults if ($_SESSION['tmpval']['display_binary']) { $where_comparison = ' = ' . $column; - $wkbval = $pmaString->substr(bin2hex($column), 8); + $wkbval = /*overload*/mb_substr(bin2hex($column), 8); $is_field_truncated = $this->_getPartialText($wkbval); $cell = $this->_getRowData( @@ -3895,7 +3894,7 @@ class PMA_DisplayResults $field_flags = $GLOBALS['dbi']->fieldFlags($dt_result, $col_index); $bIsText = gettype($transformation_plugin) === 'object' - && $pmaStr->strpos($transformation_plugin->getMIMEtype(), 'Text') + && /*overload*/mb_strpos($transformation_plugin->getMIMEtype(), 'Text') === false; // disable inline grid editing @@ -3926,7 +3925,7 @@ class PMA_DisplayResults // Cut all fields to $GLOBALS['cfg']['LimitChars'] // (unless it's a link-type transformation or binary) if (!(gettype($transformation_plugin) === "object" - && $pmaStr->strpos($transformation_plugin->getName(), 'Link') !== false) + && /*overload*/mb_strpos($transformation_plugin->getName(), 'Link') !== false) && !stristr($field_flags, self::BINARY_FIELD) ) { $is_field_truncated = $this->_getPartialText($column); @@ -3968,11 +3967,11 @@ class PMA_DisplayResults } $formatted = true; - } elseif ((($pmaStr->substr($meta->type, 0, 9) == self::TIMESTAMP_FIELD) + } elseif (((/*overload*/mb_substr($meta->type, 0, 9) == self::TIMESTAMP_FIELD) || ($meta->type == self::DATETIME_FIELD) || ($meta->type == self::TIME_FIELD) || ($meta->type == self::TIME_FIELD)) - && ($pmaStr->strpos($column, ".") === true) + && (/*overload*/mb_strpos($column, ".") === true) ) { $column = PMA_Util::addMicroseconds($column); } @@ -4544,7 +4543,7 @@ class PMA_DisplayResults $pmaString = $GLOBALS['PMA_String']; // 2.3 Prepare the navigation bars - if (!$pmaString->strlen($this->__get('table'))) { + if (!/*overload*/mb_strlen($this->__get('table'))) { if (isset($analyzed_sql[0]['query_type']) && ($analyzed_sql[0]['query_type'] == self::QUERY_TYPE_SELECT) @@ -4592,7 +4591,7 @@ class PMA_DisplayResults } - if ($pmaString->strlen($this->__get('table'))) { + if (/*overload*/mb_strlen($this->__get('table'))) { // This method set the values for $map array $this->_setParamForLinkForeignKeyRelatedTables($map); } // end if @@ -4770,7 +4769,7 @@ class PMA_DisplayResults /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strpos($sort_expression_nodirection, '.') === false) { + if (/*overload*/mb_strpos($sort_expression_nodirection, '.') === false) { $sort_table = $this->__get('table'); $sort_column = $sort_expression_nodirection; } else { @@ -4821,8 +4820,8 @@ class PMA_DisplayResults $column_for_first_row = $row[$sorted_column_index]; } - $column_for_first_row = $pmaString->strtoupper( - $pmaString->substr( + $column_for_first_row = /*overload*/mb_strtoupper( + /*overload*/mb_substr( $column_for_first_row, 0, $GLOBALS['cfg']['LimitChars'] ) ); @@ -4847,8 +4846,8 @@ class PMA_DisplayResults $column_for_last_row = $row[$sorted_column_index]; } - $column_for_last_row = $pmaString->strtoupper( - $pmaString->substr( + $column_for_last_row = /*overload*/mb_strtoupper( + /*overload*/mb_substr( $column_for_last_row, 0, $GLOBALS['cfg']['LimitChars'] ) ); @@ -5473,7 +5472,7 @@ class PMA_DisplayResults $pmaString = $GLOBALS['PMA_String']; if (isset($content)) { - $size = $pmaString->strlen($content); + $size = /*overload*/mb_strlen($content); $display_size = PMA_Util::formatByteDown($size, 3, 1); $result .= ' - ' . $display_size[0] . ' ' . $display_size[1]; @@ -5488,10 +5487,8 @@ class PMA_DisplayResults // if we want to use a text transformation on a BLOB column if (gettype($transformation_plugin) === "object") { - $posMimeOctetstream = $pmaString - ->strpos($transformation_plugin->getMIMESubtype(), 'Octetstream'); - $posMimeText = $pmaString - ->strpos($transformation_plugin->getMIMEtype(), 'Text'); + $posMimeOctetstream = /*overload*/mb_strpos($transformation_plugin->getMIMESubtype(), 'Octetstream'); + $posMimeText = /*overload*/mb_strpos($transformation_plugin->getMIMEtype(), 'Text'); if ($posMimeOctetstream || $posMimeText !== false ) { @@ -5597,7 +5594,7 @@ class PMA_DisplayResults $alias = $analyzed_sql[0]['select_expr'] [$select_expr_position]['alias']; - if (!isset($alias) || !$pmaString->strlen($alias)) { + if (!isset($alias) || !/*overload*/mb_strlen($alias)) { continue; } // end if @@ -5617,7 +5614,7 @@ class PMA_DisplayResults // Field to display from the foreign table? if (isset($map[$meta->name][2]) - && $pmaString->strlen($map[$meta->name][2]) + && /*overload*/mb_strlen($map[$meta->name][2]) ) { $dispsql = 'SELECT ' @@ -6033,10 +6030,10 @@ class PMA_DisplayResults */ private function _getPartialText(&$str) { - if ($GLOBALS['PMA_String']->strlen($str) > $GLOBALS['cfg']['LimitChars'] + if (/*overload*/mb_strlen($str) > $GLOBALS['cfg']['LimitChars'] && $_SESSION['tmpval']['pftext'] === self::DISPLAY_PARTIAL_TEXT ) { - $str = $GLOBALS['PMA_String']->substr( + $str = /*overload*/mb_substr( $str, 0, $GLOBALS['cfg']['LimitChars'] ) . '...'; diff --git a/libraries/Error.class.php b/libraries/Error.class.php index 4e5b22ca2b..19d177c988 100644 --- a/libraries/Error.class.php +++ b/libraries/Error.class.php @@ -252,7 +252,7 @@ class PMA_Error extends PMA_Message public function getHtmlTitle() { return htmlspecialchars( - $GLOBALS['PMA_String']->substr($this->getTitle(), 0, 100) + /*overload*/mb_substr($this->getTitle(), 0, 100) ); } @@ -437,7 +437,7 @@ class PMA_Error extends PMA_Message { $dest = realpath($dest); - if ($GLOBALS['PMA_String']->substr(PHP_OS, 0, 3) == 'WIN') { + if (/*overload*/mb_substr(PHP_OS, 0, 3) == 'WIN') { $separator = '\\'; } else { $separator = '/'; diff --git a/libraries/File.class.php b/libraries/File.class.php index 3682ca0070..a17398d974 100644 --- a/libraries/File.class.php +++ b/libraries/File.class.php @@ -714,7 +714,7 @@ class PMA_File */ public function getContentLength() { - return $GLOBALS['PMA_String']->strlen($this->_content); + return /*overload*/mb_strlen($this->_content); } /** diff --git a/libraries/Font.class.php b/libraries/Font.class.php index b86ef61dfa..d7c1ee60cd 100644 --- a/libraries/Font.class.php +++ b/libraries/Font.class.php @@ -102,21 +102,19 @@ class PMA_Font */ $count = 0; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; foreach ($charLists as $charList) { - $count += (($pmaString->strlen($text) - - $pmaString->strlen(str_replace($charList["chars"], "", $text)) + $count += ((/*overload*/mb_strlen($text) + - /*overload*/mb_strlen(str_replace($charList["chars"], "", $text)) ) * $charList["modifier"]); } $text = str_replace(" ", "", $text);//remove the " "'s //all other chars $count = $count - + ($pmaString->strlen(preg_replace("/[a-z0-9]/i", "", $text)) * 0.3); + + (/*overload*/mb_strlen(preg_replace("/[a-z0-9]/i", "", $text)) * 0.3); $modifier = 1; - $font = $pmaString->strtolower($font); + $font = /*overload*/mb_strtolower($font); switch ($font) { /* * no modifier for arial and sans-serif diff --git a/libraries/Header.class.php b/libraries/Header.class.php index a83ce8bf63..edf7c73b48 100644 --- a/libraries/Header.class.php +++ b/libraries/Header.class.php @@ -562,12 +562,10 @@ class PMA_Header $lang = $GLOBALS['available_languages'][$GLOBALS['lang']][1]; $dir = $GLOBALS['text_dir']; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; $retval = ""; $retval .= ""; return $retval; @@ -711,7 +709,7 @@ class PMA_Header { $retval = ''; if ($this->_menuEnabled - && $GLOBALS['PMA_String']->strlen($table) + && /*overload*/mb_strlen($table) && $GLOBALS['cfg']['NumRecentTables'] > 0 ) { $tmp_result = PMA_RecentFavoriteTable::getInstance('recent')->add($db, $table); diff --git a/libraries/Index.class.php b/libraries/Index.class.php index 5128138c26..4248bb7dc6 100644 --- a/libraries/Index.class.php +++ b/libraries/Index.class.php @@ -111,7 +111,7 @@ class PMA_Index PMA_Index::_loadIndexes($table, $schema); if (! isset(PMA_Index::$_registry[$schema][$table][$index_name])) { $index = new PMA_Index; - if ($GLOBALS['PMA_String']->strlen($index_name)) { + if (/*overload*/mb_strlen($index_name)) { $index->setName($index_name); PMA_Index::$_registry[$schema][$table][$index->getName()] = $index; } @@ -200,7 +200,7 @@ class PMA_Index public function addColumn($params) { if (isset($params['Column_name']) - && $GLOBALS['PMA_String']->strlen($params['Column_name']) + && /*overload*/mb_strlen($params['Column_name']) ) { $this->_columns[$params['Column_name']] = new PMA_Index_Column($params); } @@ -341,7 +341,7 @@ class PMA_Index public function getComments() { $comments = $this->getRemarks(); - if ($GLOBALS['PMA_String']->strlen($comments)) { + if (/*overload*/mb_strlen($comments)) { $comments .= "\n"; } $comments .= $this->getComment(); diff --git a/libraries/List_Database.class.php b/libraries/List_Database.class.php index efe1f87a17..1c9a426a97 100644 --- a/libraries/List_Database.class.php +++ b/libraries/List_Database.class.php @@ -142,7 +142,7 @@ class PMA_List_Database extends PMA_List protected function checkOnlyDatabase() { if (is_string($GLOBALS['cfg']['Server']['only_db']) - && $GLOBALS['PMA_String']->strlen($GLOBALS['cfg']['Server']['only_db']) + && /*overload*/mb_strlen($GLOBALS['cfg']['Server']['only_db']) ) { $GLOBALS['cfg']['Server']['only_db'] = array( $GLOBALS['cfg']['Server']['only_db'] @@ -183,7 +183,7 @@ class PMA_List_Database extends PMA_List */ public function getDefault() { - if ($GLOBALS['PMA_String']->strlen($GLOBALS['db'])) { + if (/*overload*/mb_strlen($GLOBALS['db'])) { return $GLOBALS['db']; } diff --git a/libraries/Menu.class.php b/libraries/Menu.class.php index 11ea715ea0..0b79d931d4 100644 --- a/libraries/Menu.class.php +++ b/libraries/Menu.class.php @@ -81,7 +81,7 @@ class PMA_Menu */ public function getHash() { - return $GLOBALS['PMA_String']->substr( + return /*overload*/mb_substr( md5($this->_getMenu() . $this->_getBreadcrumbs()), 0, 8 @@ -100,11 +100,11 @@ class PMA_Menu /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($this->_table)) { + if (/*overload*/mb_strlen($this->_table)) { $tabs = $this->_getTableTabs(); $url_params['table'] = $this->_table; $level = 'table'; - } else if ($pmaString->strlen($this->_db)) { + } else if (/*overload*/mb_strlen($this->_db)) { $tabs = $this->_getDbTabs(); $level = 'db'; } else { @@ -152,9 +152,9 @@ class PMA_Menu $pmaString = $GLOBALS['PMA_String']; while ($row = $GLOBALS['dbi']->fetchAssoc($result)) { - $tabName = $pmaString->substr( + $tabName = /*overload*/mb_substr( $row['tab'], - $pmaString->strpos($row['tab'], '_') + 1 + /*overload*/mb_strpos($row['tab'], '_') + 1 ); unset($allowedTabs[$tabName]); } @@ -206,7 +206,7 @@ class PMA_Menu /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($this->_db)) { + if (/*overload*/mb_strlen($this->_db)) { $retval .= $separator; if (PMA_Util::showIcons('TabsMode')) { $retval .= PMA_Util::getImage( @@ -224,7 +224,7 @@ class PMA_Menu ); // if the table is being dropped, $_REQUEST['purge'] is set to '1' // so do not display the table name in upper div - if ($pmaString->strlen($this->_table) + if (/*overload*/mb_strlen($this->_table) && ! (isset($_REQUEST['purge']) && $_REQUEST['purge'] == '1') ) { include './libraries/tbl_info.inc.php'; @@ -252,7 +252,7 @@ class PMA_Menu if (! empty($show_comment) && ! isset($GLOBALS['avoid_show_comment']) ) { - if ($pmaString->strstr($show_comment, '; InnoDB free')) { + if (/*overload*/mb_strstr($show_comment, '; InnoDB free')) { $show_comment = preg_replace( '@; InnoDB free:.*?$@', '', diff --git a/libraries/Message.class.php b/libraries/Message.class.php index 2b054f2b2c..29cf41e6fc 100644 --- a/libraries/Message.class.php +++ b/libraries/Message.class.php @@ -501,7 +501,7 @@ class PMA_Message */ public function addMessage($message, $separator = ' ') { - if ($GLOBALS['PMA_String']->strlen($separator)) { + if (/*overload*/mb_strlen($separator)) { $this->addedMessages[] = $separator; } @@ -628,13 +628,11 @@ class PMA_Message { $message = $this->message; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if (0 === $pmaString->strlen($message)) { + if (0 === /*overload*/mb_strlen($message)) { $string = $this->getString(); if (isset($GLOBALS[$string])) { $message = $GLOBALS[$string]; - } elseif (0 === $pmaString->strlen($string)) { + } elseif (0 === /*overload*/mb_strlen($string)) { $message = ''; } else { $message = $string; diff --git a/libraries/PDF.class.php b/libraries/PDF.class.php index e30f5b2982..fcf8e9423f 100644 --- a/libraries/PDF.class.php +++ b/libraries/PDF.class.php @@ -142,7 +142,7 @@ class PMA_PDF extends TCPDF PMA_downloadHeader( $filename, 'application/pdf', - $GLOBALS['PMA_String']->strlen($pdfData) + /*overload*/mb_strlen($pdfData) ); echo $pdfData; } diff --git a/libraries/RecentFavoriteTable.class.php b/libraries/RecentFavoriteTable.class.php index 3050120ec6..35dfa60d29 100644 --- a/libraries/RecentFavoriteTable.class.php +++ b/libraries/RecentFavoriteTable.class.php @@ -63,12 +63,9 @@ class PMA_RecentFavoriteTable */ private function __construct($type) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $this->_tableType = $type; - if ($pmaString->strlen($GLOBALS['cfg']['Server']['pmadb']) - && $pmaString->strlen($GLOBALS['cfg']['Server'][$this->_tableType]) + if (/*overload*/mb_strlen($GLOBALS['cfg']['Server']['pmadb']) + && /*overload*/mb_strlen($GLOBALS['cfg']['Server'][$this->_tableType]) ) { $this->_pmaTable = PMA_Util::backquote($GLOBALS['cfg']['Server']['pmadb']) . "." diff --git a/libraries/Response.class.php b/libraries/Response.class.php index 452c410c93..9a68467a96 100644 --- a/libraries/Response.class.php +++ b/libraries/Response.class.php @@ -318,10 +318,7 @@ class PMA_Response $this->addJSON('_displayMessage', $this->getHeader()->getMessage()); $errors = $this->_footer->getErrorMessages(); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - if ($pmaString->strlen($errors)) { + if (/*overload*/mb_strlen($errors)) { $this->addJSON('_errors', $errors); } $promptPhpErrors = $GLOBALS['error_handler']->hasErrorsForPrompt(); @@ -333,7 +330,7 @@ class PMA_Response $query = ''; $maxChars = $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']; if (isset($GLOBALS['sql_query']) - && $pmaString->strlen($GLOBALS['sql_query']) < $maxChars + && /*overload*/mb_strlen($GLOBALS['sql_query']) < $maxChars ) { $query = $GLOBALS['sql_query']; } diff --git a/libraries/Scripts.class.php b/libraries/Scripts.class.php index 57ad677073..169192908b 100644 --- a/libraries/Scripts.class.php +++ b/libraries/Scripts.class.php @@ -54,7 +54,7 @@ class PMA_Scripts $dynamic_scripts = ""; $scripts = array(); foreach ($files as $value) { - if ($GLOBALS['PMA_String']->strpos($value['filename'], "?") !== false) { + if (/*overload*/mb_strpos($value['filename'], "?") !== false) { if ($value['before_statics'] === true) { $first_dynamic_scripts .= ""; @@ -158,16 +158,13 @@ class PMA_Scripts */ private function _eventBlacklist($filename) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - if ( $pmaString->strpos($filename, 'jquery') !== false - || $pmaString->strpos($filename, 'codemirror') !== false - || $pmaString->strpos($filename, 'messages.php') !== false - || $pmaString->strpos($filename, 'ajax.js') !== false - || $pmaString->strpos($filename, 'navigation.js') !== false - || $pmaString->strpos($filename, 'get_image.js.php') !== false - || $pmaString->strpos($filename, 'cross_framing_protection.js') !== false + if ( /*overload*/mb_strpos($filename, 'jquery') !== false + || /*overload*/mb_strpos($filename, 'codemirror') !== false + || /*overload*/mb_strpos($filename, 'messages.php') !== false + || /*overload*/mb_strpos($filename, 'ajax.js') !== false + || /*overload*/mb_strpos($filename, 'navigation.js') !== false + || /*overload*/mb_strpos($filename, 'get_image.js.php') !== false + || /*overload*/mb_strpos($filename, 'cross_framing_protection.js') !== false ) { return 0; } @@ -216,7 +213,7 @@ class PMA_Scripts $retval = array(); foreach ($this->_files as $file) { //If filename contains a "?", continue. - if ($GLOBALS['PMA_String']->strpos($file['filename'], "?") !== false) { + if (/*overload*/mb_strpos($file['filename'], "?") !== false) { continue; } diff --git a/libraries/ServerStatusData.class.php b/libraries/ServerStatusData.class.php index bf24f6745d..cb0644cf08 100644 --- a/libraries/ServerStatusData.class.php +++ b/libraries/ServerStatusData.class.php @@ -287,7 +287,7 @@ class PMA_ServerStatusData foreach ($server_status as $name => $value) { $section_found = false; foreach ($allocations as $filter => $section) { - if ($pmaString->strpos($name, $filter) !== false) { + if (/*overload*/mb_strpos($name, $filter) !== false) { $allocationMap[$name] = $section; $categoryUsed[$section] = true; $section_found = true; @@ -318,7 +318,7 @@ class PMA_ServerStatusData // Set all class properties $this->db_isLocal = false; - if ($pmaString->strtolower($GLOBALS['cfg']['Server']['host']) === 'localhost' + if (/*overload*/mb_strtolower($GLOBALS['cfg']['Server']['host']) === 'localhost' || $GLOBALS['cfg']['Server']['host'] === '127.0.0.1' || $GLOBALS['cfg']['Server']['host'] === '::1' ) { diff --git a/libraries/StorageEngine.class.php b/libraries/StorageEngine.class.php index dead6f1dd0..97f8708ff9 100644 --- a/libraries/StorageEngine.class.php +++ b/libraries/StorageEngine.class.php @@ -135,7 +135,7 @@ class PMA_StorageEngine /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $selected = $pmaString->strtolower($selected); + $selected = /*overload*/mb_strtolower($selected); $output = '' . 'strpos( + if (/*overload*/mb_strpos( ' ' . $tmp_select, '|' . $current_db . '|' )) { @@ -713,7 +713,7 @@ function PMA_getHtmlForExportOptions( $html .= PMA_getHtmlForExportOptionsMethod(); $html .= PMA_getHtmlForExportOptionsSelection($export_type, $multi_values); - $tableLength = $GLOBALS['PMA_String']->strlen($table); + $tableLength = /*overload*/mb_strlen($table); if ($tableLength && empty($num_tables) && ! PMA_Table::isMerge($db, $table)) { $html .= PMA_getHtmlForExportOptionsRows($db, $table, $unlim_num_rows); } @@ -792,7 +792,7 @@ function PMA_getHtmlForAliasModalDialog($db = '', $table = '') } $db = htmlspecialchars($db); $name_attr = 'aliases[' . $db . '][alias]'; - $id_attr = $pmaString->substr(md5($name_attr), 0, 12); + $id_attr = /*overload*/mb_substr(md5($name_attr), 0, 12); $class = 'hide'; if ($first_db) { $first_db = false; @@ -816,7 +816,7 @@ function PMA_getHtmlForAliasModalDialog($db = '', $table = '') } $table = htmlspecialchars($table); $name_attr = 'aliases[' . $db . '][tables][' . $table . '][alias]'; - $id_attr = $pmaString->substr(md5($name_attr), 0, 12); + $id_attr = /*overload*/mb_substr(md5($name_attr), 0, 12); $class = 'hide'; if ($first_tbl) { $first_tbl = false; @@ -844,7 +844,7 @@ function PMA_getHtmlForAliasModalDialog($db = '', $table = '') $column = htmlspecialchars($column); $name_attr = 'aliases[' . $db . '][tables][' . $table . '][columns][' . $column . ']'; - $id_attr = $pmaString->substr(md5($name_attr), 0, 12); + $id_attr = /*overload*/mb_substr(md5($name_attr), 0, 12); $col_html .= ''; $col_html .= ''; diff --git a/libraries/display_git_revision.lib.php b/libraries/display_git_revision.lib.php index f192451b64..5ebdf32163 100644 --- a/libraries/display_git_revision.lib.php +++ b/libraries/display_git_revision.lib.php @@ -26,7 +26,7 @@ function PMA_printGitRevision() $GLOBALS['PMA_Config']->checkGitRevision(); // if using a remote commit fast-forwarded, link to GitHub - $commit_hash = $GLOBALS['PMA_String']->substr( + $commit_hash = /*overload*/mb_substr( $GLOBALS['PMA_Config']->get('PMA_VERSION_GIT_COMMITHASH'), 0, 7 diff --git a/libraries/error_report.lib.php b/libraries/error_report.lib.php index 810b3ff6bb..bef6b49847 100644 --- a/libraries/error_report.lib.php +++ b/libraries/error_report.lib.php @@ -293,12 +293,10 @@ function PMA_getLineNumber($filenames, $cumulative_number) */ function PMA_translateStacktrace($stack) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; foreach ($stack as &$level) { foreach ($level["context"] as &$line) { - if ($pmaString->strlen($line) > 80) { - $line = $pmaString->substr($line, 0, 75) . "//..."; + if (/*overload*/mb_strlen($line) > 80) { + $line = /*overload*/mb_substr($line, 0, 75) . "//..."; } } if (preg_match("", $level["url"], $matches)) { diff --git a/libraries/export.lib.php b/libraries/export.lib.php index 6042467c2b..07270cae5c 100644 --- a/libraries/export.lib.php +++ b/libraries/export.lib.php @@ -20,7 +20,7 @@ function PMA_shutdownDuringExport() { $a = error_get_last(); if ($a != null - && $GLOBALS['PMA_String']->strpos($a['message'], "execution time") + && /*overload*/mb_strpos($a['message'], "execution time") ) { //write in partially downloaded file for future reference of user print_r($a); @@ -86,16 +86,13 @@ function PMA_exportOutputHandler($line) ); } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // If we have to buffer data, we will perform everything at once at the end if ($GLOBALS['buffer_needed']) { $dump_buffer .= $line; if ($GLOBALS['onfly_compression']) { - $dump_buffer_len += $pmaString->strlen($line); + $dump_buffer_len += /*overload*/mb_strlen($line); if ($dump_buffer_len > $GLOBALS['memory_limit']) { if ($GLOBALS['output_charset_conversion']) { @@ -114,7 +111,7 @@ function PMA_exportOutputHandler($line) } if ($GLOBALS['save_on_server']) { $write_result = @fwrite($GLOBALS['file_handle'], $dump_buffer); - if ($write_result != $pmaString->strlen($dump_buffer)) { + if ($write_result != /*overload*/mb_strlen($dump_buffer)) { $GLOBALS['message'] = PMA_Message::error( __('Insufficient space to save the file %s.') ); @@ -143,10 +140,10 @@ function PMA_exportOutputHandler($line) $line ); } - if ($GLOBALS['save_on_server'] && $pmaString->strlen($line) > 0) { + if ($GLOBALS['save_on_server'] && /*overload*/mb_strlen($line) > 0) { $write_result = @fwrite($GLOBALS['file_handle'], $line); if (! $write_result - || $write_result != $pmaString->strlen($line) + || $write_result != /*overload*/mb_strlen($line) ) { $GLOBALS['message'] = PMA_Message::error( __('Insufficient space to save the file %s.') @@ -206,12 +203,9 @@ function PMA_getHtmlForDisplayedExportFooter($back_button) */ function PMA_getMemoryLimitForExport() { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $memory_limit = trim(@ini_get('memory_limit')); - $memory_limit_num = (int)$pmaString->substr($memory_limit, 0, -1); - $lowerLastChar = $pmaString->strtolower($pmaString->substr($memory_limit, -1)); + $memory_limit_num = (int)/*overload*/mb_substr($memory_limit, 0, -1); + $lowerLastChar = /*overload*/mb_strtolower(/*overload*/mb_substr($memory_limit, -1)); // 2 MB as default if (empty($memory_limit) || '-1' == $memory_limit) { $memory_limit = 2 * 1024 * 1024; @@ -282,19 +276,17 @@ function PMA_getExportFilenameAndMimetype( // part of the filename) to avoid a remote code execution vulnerability $filename = PMA_sanitizeFilename($filename, $replaceDots = true); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; // Grab basic dump extension and mime type // Check if the user already added extension; // get the substring where the extension would be if it was included - $extension_start_pos = $pmaString->strlen($filename) - $pmaString->strlen( + $extension_start_pos = /*overload*/mb_strlen($filename) - /*overload*/mb_strlen( $export_plugin->getProperties()->getExtension() ) - 1; - $user_extension = $pmaString->substr( - $filename, $extension_start_pos, $pmaString->strlen($filename) + $user_extension = /*overload*/mb_substr( + $filename, $extension_start_pos, /*overload*/mb_strlen($filename) ); $required_extension = "." . $export_plugin->getProperties()->getExtension(); - if ($pmaString->strtolower($user_extension) != $required_extension) { + if (/*overload*/mb_strtolower($user_extension) != $required_extension) { $filename .= $required_extension; } $mime_type = $export_plugin->getProperties()->getMimeType(); @@ -370,13 +362,10 @@ function PMA_openExportFile($filename, $quick_export) */ function PMA_closeExportFile($file_handle, $dump_buffer, $save_filename) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $write_result = @fwrite($file_handle, $dump_buffer); fclose($file_handle); - if ($pmaString->strlen($dump_buffer) > 0 - && (! $write_result || ($write_result != $pmaString->strlen($dump_buffer))) + if (/*overload*/mb_strlen($dump_buffer) > 0 + && (! $write_result || ($write_result != /*overload*/mb_strlen($dump_buffer))) ) { $message = new PMA_Message( __('Insufficient space to save the file %s.'), @@ -408,7 +397,7 @@ function PMA_compressExport($dump_buffer, $compression, $filename) $zipfile = new ZipFile(); $zipfile->addFile( $dump_buffer, - $GLOBALS['PMA_String']->substr($filename, 0, -4) + /*overload*/mb_substr($filename, 0, -4) ); $dump_buffer = $zipfile->file(); } elseif ($compression == 'gzip' && PMA_gzencodeNeeded()) { @@ -490,9 +479,6 @@ function PMA_exportServer( $export_type, $do_relation, $do_comments, $do_mime, $do_dates, $aliases ) { - /** @var PMA_String $pmaStr */ - $pmaStr = $GLOBALS['PMA_String']; - if (! empty($db_select)) { $tmp_select = implode($db_select, '|'); $tmp_select = '|' . $tmp_select . '|'; @@ -500,7 +486,7 @@ function PMA_exportServer( // Walk over databases foreach ($GLOBALS['pma']->databases as $current_db) { if (isset($tmp_select) - && $pmaStr->strpos(' ' . $tmp_select, '|' . $current_db . '|') + && /*overload*/mb_strpos(' ' . $tmp_select, '|' . $current_db . '|') ) { $tables = $GLOBALS['dbi']->getTables($current_db); PMA_exportDatabase( @@ -545,7 +531,7 @@ function PMA_exportDatabase( } if (method_exists($export_plugin, 'exportRoutines') - && $GLOBALS['PMA_String']->strpos( + && /*overload*/mb_strpos( $GLOBALS['sql_structure_or_data'], 'structure' ) !== false diff --git a/libraries/file_listing.lib.php b/libraries/file_listing.lib.php index f0fee3c64c..aabedf1e0a 100644 --- a/libraries/file_listing.lib.php +++ b/libraries/file_listing.lib.php @@ -24,7 +24,7 @@ function PMA_getDirContent($dir, $expression = '') } $result = array(); - if ($GLOBALS['PMA_String']->substr($dir, -1) != '/') { + if (/*overload*/mb_substr($dir, -1) != '/') { $dir .= '/'; } while ($file = @readdir($handle)) { diff --git a/libraries/gis/GIS_Factory.class.php b/libraries/gis/GIS_Factory.class.php index c9f1d92794..7114984c2d 100644 --- a/libraries/gis/GIS_Factory.class.php +++ b/libraries/gis/GIS_Factory.class.php @@ -36,12 +36,12 @@ class PMA_GIS_Factory $pmaString = $GLOBALS['PMA_String']; $file = './libraries/gis/GIS_' - . ucfirst($pmaString->strtolower($type)) . '.class.php'; + . ucfirst(/*overload*/mb_strtolower($type)) . '.class.php'; if (! file_exists($file)) { return false; } if (include_once $file) { - switch($pmaString->strtoupper($type)) { + switch(/*overload*/mb_strtoupper($type)) { case 'MULTIPOLYGON' : return PMA_GIS_Multipolygon::singleton(); case 'POLYGON' : diff --git a/libraries/gis/GIS_Geometry.class.php b/libraries/gis/GIS_Geometry.class.php index b2be72e4da..e5dfdf0303 100644 --- a/libraries/gis/GIS_Geometry.class.php +++ b/libraries/gis/GIS_Geometry.class.php @@ -181,9 +181,9 @@ abstract class PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; if (preg_match("/^'" . $geom_types . "\(.*\)',[0-9]*$/i", $value)) { - $last_comma = $pmaString->strripos($value, ","); - $srid = trim($pmaString->substr($value, $last_comma + 1)); - $wkt = trim($pmaString->substr($value, 1, $last_comma - 2)); + $last_comma = /*overload*/mb_strripos($value, ","); + $srid = trim(/*overload*/mb_substr($value, $last_comma + 1)); + $wkt = trim(/*overload*/mb_substr($value, 1, $last_comma - 2)); } elseif (preg_match("/^" . $geom_types . "\(.*\)$/i", $value)) { $wkt = $value; } @@ -258,10 +258,10 @@ abstract class PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $ol_array = $pmaString->substr( + $ol_array = /*overload*/mb_substr( $ol_array, 0, - $pmaString->strlen($ol_array) - 2 + /*overload*/mb_strlen($ol_array) - 2 ); $ol_array .= ')'; @@ -311,10 +311,10 @@ abstract class PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $ol_array = $pmaString->substr( + $ol_array = /*overload*/mb_substr( $ol_array, 0, - $pmaString->strlen($ol_array) - 2 + /*overload*/mb_strlen($ol_array) - 2 ); $ol_array .= ')'; @@ -359,10 +359,10 @@ abstract class PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $ol_array = $pmaString->substr( + $ol_array = /*overload*/mb_substr( $ol_array, 0, - $pmaString->strlen($ol_array) - 2 + /*overload*/mb_strlen($ol_array) - 2 ); $ol_array .= ')'; diff --git a/libraries/gis/GIS_Geometrycollection.class.php b/libraries/gis/GIS_Geometrycollection.class.php index 5ef0f97817..63797eb0bb 100644 --- a/libraries/gis/GIS_Geometrycollection.class.php +++ b/libraries/gis/GIS_Geometrycollection.class.php @@ -61,18 +61,18 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr( + $goem_col = /*overload*/mb_substr( $spatial, 19, - $pmaString->strlen($spatial) - 20 + /*overload*/mb_strlen($spatial) - 20 ); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -122,17 +122,17 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr( + $goem_col = /*overload*/mb_substr( $spatial, 19, - $pmaString->strlen($spatial) - 20 + /*overload*/mb_strlen($spatial) - 20 ); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -163,17 +163,17 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr( + $goem_col = /*overload*/mb_substr( $spatial, 19, - $pmaString->strlen($spatial) - 20 + /*overload*/mb_strlen($spatial) - 20 ); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -205,17 +205,17 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr( + $goem_col = /*overload*/mb_substr( $spatial, 19, - $pmaString->strlen($spatial) - 20 + /*overload*/mb_strlen($spatial) - 20 ); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -249,17 +249,17 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr( + $goem_col = /*overload*/mb_substr( $spatial, 19, - $pmaString->strlen($spatial) - 20 + /*overload*/mb_strlen($spatial) - 20 ); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -292,7 +292,7 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry } elseif ($char == ')') { $br_count--; if ($br_count == 0) { - $sub_parts[] = $GLOBALS['PMA_String']->substr( + $sub_parts[] = /*overload*/mb_substr( $goem_col, $start, ($count + 1 - $start) @@ -334,7 +334,7 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); } $wkt .= ')'; return $wkt; @@ -359,15 +359,15 @@ class PMA_GIS_Geometrycollection extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'GEOMETRYCOLLECTION(' and trailing ')' - $goem_col = $pmaString->substr($wkt, 19, ($pmaString->strlen($wkt) - 20)); + $goem_col = /*overload*/mb_substr($wkt, 19, (/*overload*/mb_strlen($wkt) - 20)); // Split the geometry collection object to get its constituents. $sub_parts = $this->_explodeGeomCol($goem_col); $params['GEOMETRYCOLLECTION']['geom_count'] = count($sub_parts); $i = 0; foreach ($sub_parts as $sub_part) { - $type_pos = $pmaString->stripos($sub_part, '('); - $type = $pmaString->substr($sub_part, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($sub_part, '('); + $type = /*overload*/mb_substr($sub_part, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { continue; diff --git a/libraries/gis/GIS_Linestring.class.php b/libraries/gis/GIS_Linestring.class.php index edb6193b0c..d4f73107e8 100644 --- a/libraries/gis/GIS_Linestring.class.php +++ b/libraries/gis/GIS_Linestring.class.php @@ -59,10 +59,10 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'LINESTRING(' and trailing ')' - $linesrting = $pmaString->substr( + $linesrting = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); return $this->setMinMax($linesrting, array()); } @@ -87,19 +87,19 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($line_color, 1, 2)); - $green = hexdec($pmaString->substr($line_color, 3, 2)); - $blue = hexdec($pmaString->substr($line_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($line_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($line_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($line_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'LINESTRING(' and trailing ')' - $linesrting = $pmaString->substr( + $linesrting = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($linesrting, $scale_data); @@ -143,16 +143,16 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaString->substr($line_color, 1, 2)); - $green = hexdec($pmaString->substr($line_color, 3, 2)); - $blue = hexdec($pmaString->substr($line_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($line_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($line_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($line_color, 4, 2)); $line = array('width' => 1.5, 'color' => array($red, $green, $blue)); // Trim to remove leading 'LINESTRING(' and trailing ')' - $linesrting = $pmaString->substr( + $linesrting = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($linesrting, $scale_data); @@ -203,10 +203,10 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'LINESTRING(' and trailing ')' - $linesrting = $pmaString->substr( + $linesrting = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($linesrting, $scale_data); @@ -253,10 +253,10 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'LINESTRING(' and trailing ')' - $linesrting = $pmaString->substr( + $linesrting = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($linesrting, null); @@ -295,7 +295,7 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -326,7 +326,7 @@ class PMA_GIS_Linestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'LINESTRING(' and trailing ')' - $linestring = $pmaString->substr($wkt, 11, ($pmaString->strlen($wkt) - 12)); + $linestring = /*overload*/mb_substr($wkt, 11, (/*overload*/mb_strlen($wkt) - 12)); $points_arr = $this->extractPoints($linestring, null); $no_of_points = count($points_arr); diff --git a/libraries/gis/GIS_Multilinestring.class.php b/libraries/gis/GIS_Multilinestring.class.php index 54d716c82e..9ac833b343 100644 --- a/libraries/gis/GIS_Multilinestring.class.php +++ b/libraries/gis/GIS_Multilinestring.class.php @@ -61,10 +61,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $spatial, 17, - $pmaString->strlen($spatial) - 19 + /*overload*/mb_strlen($spatial) - 19 ); // Separate each linestring $linestirngs = explode("),(", $multilinestirng); @@ -96,16 +96,16 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($line_color, 1, 2)); - $green = hexdec($pmaString->substr($line_color, 3, 2)); - $blue = hexdec($pmaString->substr($line_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($line_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($line_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($line_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $spatial, 17, - $pmaString->strlen($spatial) - 19 + /*overload*/mb_strlen($spatial) - 19 ); // Separate each linestring $linestirngs = explode("),(", $multilinestirng); @@ -156,15 +156,15 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaString->substr($line_color, 1, 2)); - $green = hexdec($pmaString->substr($line_color, 3, 2)); - $blue = hexdec($pmaString->substr($line_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($line_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($line_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($line_color, 4, 2)); $line = array('width' => 1.5, 'color' => array($red, $green, $blue)); // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $spatial, - 17, $pmaString->strlen($spatial) - 19 + 17, /*overload*/mb_strlen($spatial) - 19 ); // Separate each linestring $linestirngs = explode("),(", $multilinestirng); @@ -220,10 +220,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $spatial, 17, - $pmaString->strlen($spatial) - 19 + /*overload*/mb_strlen($spatial) - 19 ); // Separate each linestring $linestirngs = explode("),(", $multilinestirng); @@ -277,10 +277,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $spatial, 17, - $pmaString->strlen($spatial) - 19 + /*overload*/mb_strlen($spatial) - 19 ); // Separate each linestring $linestirngs = explode("),(", $multilinestirng); @@ -331,10 +331,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry && trim($data_row[$i][$j]['y']) != '') ? $data_row[$i][$j]['y'] : $empty) . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= '),'; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -358,10 +358,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry foreach ($row_data['parts'][$i]['points'] as $point) { $wkt .= $point['x'] . ' ' . $point['y'] . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= '),'; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -392,10 +392,10 @@ class PMA_GIS_Multilinestring extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTILINESTRING((' and trailing '))' - $multilinestirng = $pmaString->substr( + $multilinestirng = /*overload*/mb_substr( $wkt, 17, - $pmaString->strlen($wkt) - 19 + /*overload*/mb_strlen($wkt) - 19 ); // Seperate each linestring $linestirngs = explode("),(", $multilinestirng); diff --git a/libraries/gis/GIS_Multipoint.class.php b/libraries/gis/GIS_Multipoint.class.php index 530ad4c6ed..ffd515df65 100644 --- a/libraries/gis/GIS_Multipoint.class.php +++ b/libraries/gis/GIS_Multipoint.class.php @@ -59,7 +59,7 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry $pmaStr = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $multipoint = $pmaStr->substr($spatial, 11, $pmaStr->strlen($spatial) - 12); + $multipoint = /*overload*/mb_substr($spatial, 11, /*overload*/mb_strlen($spatial) - 12); return $this->setMinMax($multipoint, array()); } @@ -83,16 +83,16 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($point_color, 1, 2)); - $green = hexdec($pmaString->substr($point_color, 3, 2)); - $blue = hexdec($pmaString->substr($point_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($point_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($point_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($point_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $multipoint = $pmaString->substr( + $multipoint = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($multipoint, $scale_data); @@ -132,16 +132,16 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaString->substr($point_color, 1, 2)); - $green = hexdec($pmaString->substr($point_color, 3, 2)); - $blue = hexdec($pmaString->substr($point_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($point_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($point_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($point_color, 4, 2)); $line = array('width' => 1.25, 'color' => array($red, $green, $blue)); // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $multipoint = $pmaString->substr( + $multipoint = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($multipoint, $scale_data); @@ -187,10 +187,10 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $multipoint = $pmaString->substr( + $multipoint = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($multipoint, $scale_data); @@ -244,10 +244,10 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $multipoint = $pmaString->substr( + $multipoint = /*overload*/mb_substr( $spatial, 11, - $pmaString->strlen($spatial) - 12 + /*overload*/mb_strlen($spatial) - 12 ); $points_arr = $this->extractPoints($multipoint, null); @@ -288,7 +288,7 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -312,7 +312,7 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -343,7 +343,7 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOINT(' and trailing ')' - $points = $pmaString->substr($wkt, 11, $pmaString->strlen($wkt) - 12); + $points = /*overload*/mb_substr($wkt, 11, /*overload*/mb_strlen($wkt) - 12); $points_arr = $this->extractPoints($points, null); $no_of_points = count($points_arr); @@ -378,9 +378,9 @@ class PMA_GIS_Multipoint extends PMA_GIS_Geometry /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $olArrayLength = $pmaString->strlen($ol_array); - if ($pmaString->substr($ol_array, $olArrayLength - 2) == ', ') { - $ol_array = $pmaString->substr($ol_array, 0, $olArrayLength - 2); + $olArrayLength = /*overload*/mb_strlen($ol_array); + if (/*overload*/mb_substr($ol_array, $olArrayLength - 2) == ', ') { + $ol_array = /*overload*/mb_substr($ol_array, 0, $olArrayLength - 2); } $ol_array .= ')'; diff --git a/libraries/gis/GIS_Multipolygon.class.php b/libraries/gis/GIS_Multipolygon.class.php index ac43bf0284..3f4290368e 100644 --- a/libraries/gis/GIS_Multipolygon.class.php +++ b/libraries/gis/GIS_Multipolygon.class.php @@ -61,17 +61,17 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $min_max = array(); // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaString->substr( + $multipolygon = /*overload*/mb_substr( $spatial, 15, - $pmaString->strlen($spatial) - 18 + /*overload*/mb_strlen($spatial) - 18 ); // Separate each polygon $polygons = explode(")),((", $multipolygon); foreach ($polygons as $polygon) { // If the polygon doesn't have an inner ring, use polygon itself - if ($pmaString->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $ring = $polygon; } else { // Separate outer ring and use it to determine min-max @@ -104,16 +104,16 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($fill_color, 1, 2)); - $green = hexdec($pmaString->substr($fill_color, 3, 2)); - $blue = hexdec($pmaString->substr($fill_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($fill_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($fill_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($fill_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaString->substr( + $multipolygon = /*overload*/mb_substr( $spatial, 15, - $pmaString->strlen($spatial) - 18 + /*overload*/mb_strlen($spatial) - 18 ); // Separate each polygon $polygons = explode(")),((", $multipolygon); @@ -121,7 +121,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $first_poly = true; foreach ($polygons as $polygon) { // If the polygon doesn't have an inner polygon - if ($pmaString->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $points_arr = $this->extractPoints($polygon, $scale_data, true); } else { // Separate outer and inner polygons @@ -173,16 +173,16 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $pmaStr = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaStr->substr($fill_color, 1, 2)); - $green = hexdec($pmaStr->substr($fill_color, 3, 2)); - $blue = hexdec($pmaStr->substr($fill_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($fill_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($fill_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($fill_color, 4, 2)); $color = array($red, $green, $blue); // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaStr->substr( + $multipolygon = /*overload*/mb_substr( $spatial, 15, - $pmaStr->strlen($spatial) - 18 + /*overload*/mb_strlen($spatial) - 18 ); // Separate each polygon $polygons = explode(")),((", $multipolygon); @@ -190,7 +190,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $first_poly = true; foreach ($polygons as $polygon) { // If the polygon doesn't have an inner polygon - if ($pmaStr->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $points_arr = $this->extractPoints($polygon, $scale_data, true); } else { // Separate outer and inner polygons @@ -254,10 +254,10 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaString->substr( + $multipolygon = /*overload*/mb_substr( $spatial, 15, - $pmaString->strlen($spatial) - 18 + /*overload*/mb_strlen($spatial) - 18 ); // Separate each polygon $polygons = explode(")),((", $multipolygon); @@ -266,7 +266,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $row .= '_drawPath($polygon, $scale_data); } else { // Seperate outer and inner polygons @@ -323,10 +323,10 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaString->substr( + $multipolygon = /*overload*/mb_substr( $spatial, 15, - $pmaString->strlen($spatial) - 18 + /*overload*/mb_strlen($spatial) - 18 ); // Separate each polygon $polygons = explode(")),((", $multipolygon); @@ -407,13 +407,13 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry && trim($data_row[$k][$i][$j]['y']) != '') ? $data_row[$k][$i][$j]['y'] : $empty) . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= '),'; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= '),'; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -484,7 +484,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry foreach ($ring['points'] as $point) { $wkt .= $point['x'] . ' ' . $point['y'] . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; // end of outer ring // inner rings if any @@ -494,14 +494,14 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry foreach ($row_data['parts'][$j]['points'] as $innerPoint) { $wkt .= $innerPoint['x'] . ' ' . $innerPoint['y'] . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; // end of inner ring } } $wkt .= '),'; // end of polygon } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; // end of multipolygon return $wkt; @@ -533,7 +533,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'MULTIPOLYGON(((' and trailing ')))' - $multipolygon = $pmaString->substr($wkt, 15, $pmaString->strlen($wkt) - 18); + $multipolygon = /*overload*/mb_substr($wkt, 15, /*overload*/mb_strlen($wkt) - 18); // Separate each polygon $polygons = explode(")),((", $multipolygon); @@ -543,7 +543,7 @@ class PMA_GIS_Multipolygon extends PMA_GIS_Geometry $k = 0; foreach ($polygons as $polygon) { // If the polygon doesnt have an inner polygon - if ($pmaString->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $param_row[$k]['no_of_lines'] = 1; $points_arr = $this->extractPoints($polygon, null); $no_of_points = count($points_arr); diff --git a/libraries/gis/GIS_Point.class.php b/libraries/gis/GIS_Point.class.php index 6c1ccfc327..d879597961 100644 --- a/libraries/gis/GIS_Point.class.php +++ b/libraries/gis/GIS_Point.class.php @@ -59,7 +59,7 @@ class PMA_GIS_Point extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($spatial, 6, $pmaString->strlen($spatial) - 7); + $point = /*overload*/mb_substr($spatial, 6, /*overload*/mb_strlen($spatial) - 7); return $this->setMinMax($point, array()); } @@ -83,13 +83,13 @@ class PMA_GIS_Point extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($point_color, 1, 2)); - $green = hexdec($pmaString->substr($point_color, 3, 2)); - $blue = hexdec($pmaString->substr($point_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($point_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($point_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($point_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($spatial, 6, $pmaString->strlen($spatial) - 7); + $point = /*overload*/mb_substr($spatial, 6, /*overload*/mb_strlen($spatial) - 7); $points_arr = $this->extractPoints($point, $scale_data); // draw a small circle to mark the point @@ -127,13 +127,13 @@ class PMA_GIS_Point extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaString->substr($point_color, 1, 2)); - $green = hexdec($pmaString->substr($point_color, 3, 2)); - $blue = hexdec($pmaString->substr($point_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($point_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($point_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($point_color, 4, 2)); $line = array('width' => 1.25, 'color' => array($red, $green, $blue)); // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($spatial, 6, $pmaString->strlen($spatial) - 7); + $point = /*overload*/mb_substr($spatial, 6, /*overload*/mb_strlen($spatial) - 7); $points_arr = $this->extractPoints($point, $scale_data); // draw a small circle to mark the point @@ -177,7 +177,7 @@ class PMA_GIS_Point extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($spatial, 6, $pmaString->strlen($spatial) - 7); + $point = /*overload*/mb_substr($spatial, 6, /*overload*/mb_strlen($spatial) - 7); $points_arr = $this->extractPoints($point, $scale_data); $row = ''; @@ -227,7 +227,7 @@ class PMA_GIS_Point extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($spatial, 6, $pmaString->strlen($spatial) - 7); + $point = /*overload*/mb_substr($spatial, 6, /*overload*/mb_strlen($spatial) - 7); $points_arr = $this->extractPoints($point, null); if ($points_arr[0][0] != '' && $points_arr[0][1] != '') { @@ -300,7 +300,7 @@ class PMA_GIS_Point extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POINT(' and trailing ')' - $point = $pmaString->substr($wkt, 6, $pmaString->strlen($wkt) - 7); + $point = /*overload*/mb_substr($wkt, 6, /*overload*/mb_strlen($wkt) - 7); $points_arr = $this->extractPoints($point, null); $params[$index]['POINT']['x'] = $points_arr[0][0]; diff --git a/libraries/gis/GIS_Polygon.class.php b/libraries/gis/GIS_Polygon.class.php index 822bc1244a..83e916c1fe 100644 --- a/libraries/gis/GIS_Polygon.class.php +++ b/libraries/gis/GIS_Polygon.class.php @@ -59,14 +59,14 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaString->substr( + $polygon = /*overload*/mb_substr( $spatial, 9, - $pmaString->strlen($spatial) - 11 + /*overload*/mb_strlen($spatial) - 11 ); // If the polygon doesn't have an inner ring, use polygon itself - if ($pmaString->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $ring = $polygon; } else { // Separate outer ring and use it to determine min-max @@ -96,20 +96,20 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry // allocate colors $black = imagecolorallocate($image, 0, 0, 0); - $red = hexdec($pmaString->substr($fill_color, 1, 2)); - $green = hexdec($pmaString->substr($fill_color, 3, 2)); - $blue = hexdec($pmaString->substr($fill_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($fill_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($fill_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($fill_color, 4, 2)); $color = imagecolorallocate($image, $red, $green, $blue); // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaString->substr( + $polygon = /*overload*/mb_substr( $spatial, 9, - $pmaString->strlen($spatial) - 11 + /*overload*/mb_strlen($spatial) - 11 ); // If the polygon doesn't have an inner polygon - if ($pmaString->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $points_arr = $this->extractPoints($polygon, $scale_data, true); } else { // Separate outer and inner polygons @@ -155,16 +155,16 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry $pmaStr = $GLOBALS['PMA_String']; // allocate colors - $red = hexdec($pmaStr->substr($fill_color, 1, 2)); - $green = hexdec($pmaStr->substr($fill_color, 3, 2)); - $blue = hexdec($pmaStr->substr($fill_color, 4, 2)); + $red = hexdec(/*overload*/mb_substr($fill_color, 1, 2)); + $green = hexdec(/*overload*/mb_substr($fill_color, 3, 2)); + $blue = hexdec(/*overload*/mb_substr($fill_color, 4, 2)); $color = array($red, $green, $blue); // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaStr->substr($spatial, 9, $pmaStr->strlen($spatial) - 11); + $polygon = /*overload*/mb_substr($spatial, 9, /*overload*/mb_strlen($spatial) - 11); // If the polygon doesn't have an inner polygon - if ($pmaStr->strpos($polygon, "),(") === false) { + if (/*overload*/mb_strpos($polygon, "),(") === false) { $points_arr = $this->extractPoints($polygon, $scale_data, true); } else { // Separate outer and inner polygons @@ -220,16 +220,16 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaString->substr( + $polygon = /*overload*/mb_substr( $spatial, 9, - $pmaString->strlen($spatial) - 11 + /*overload*/mb_strlen($spatial) - 11 ); $row = '_drawPath($polygon, $scale_data); } else { // Separate outer and inner polygons @@ -284,10 +284,10 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaString->substr( + $polygon = /*overload*/mb_substr( $spatial, 9, - $pmaString->strlen($spatial) - 11 + /*overload*/mb_strlen($spatial) - 11 ); // Separate outer and inner polygons @@ -358,10 +358,10 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry && trim($gis_data[$index]['POLYGON'][$i][$j]['y']) != '') ? $gis_data[$index]['POLYGON'][$i][$j]['y'] : $empty) . ','; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= '),'; } - $wkt = $pmaString->substr($wkt, 0, $pmaString->strlen($wkt) - 1); + $wkt = /*overload*/mb_substr($wkt, 0, /*overload*/mb_strlen($wkt) - 1); $wkt .= ')'; return $wkt; } @@ -575,7 +575,7 @@ class PMA_GIS_Polygon extends PMA_GIS_Geometry $pmaString = $GLOBALS['PMA_String']; // Trim to remove leading 'POLYGON((' and trailing '))' - $polygon = $pmaString->substr($wkt, 9, ($pmaString->strlen($wkt) - 11)); + $polygon = /*overload*/mb_substr($wkt, 9, (/*overload*/mb_strlen($wkt) - 11)); // Seperate each linestring $linerings = explode("),(", $polygon); $params[$index]['POLYGON']['no_of_lines'] = count($linerings); diff --git a/libraries/gis/GIS_Visualization.class.php b/libraries/gis/GIS_Visualization.class.php index 4f5d8f7bf2..128f6ed167 100644 --- a/libraries/gis/GIS_Visualization.class.php +++ b/libraries/gis/GIS_Visualization.class.php @@ -131,13 +131,13 @@ class PMA_GIS_Visualization // Check if the user already added extension; // get the substring where the extension would be if it was included - $extension_start_pos = $pmaString->strlen($file_name) - - $pmaString->strlen($ext) - 1; - $user_extension = $pmaString->substr( - $file_name, $extension_start_pos, $pmaString->strlen($file_name) + $extension_start_pos = /*overload*/mb_strlen($file_name) + - /*overload*/mb_strlen($ext) - 1; + $user_extension = /*overload*/mb_substr( + $file_name, $extension_start_pos, /*overload*/mb_strlen($file_name) ); $required_extension = "." . $ext; - if ($pmaString->strtolower($user_extension) != $required_extension) { + if (/*overload*/mb_strtolower($user_extension) != $required_extension) { $file_name .= $required_extension; } return $file_name; @@ -381,8 +381,8 @@ class PMA_GIS_Visualization // Figure out the data type $ref_data = $row[$this->_settings['spatialColumn']]; - $type_pos = $pmaString->stripos($ref_data, '('); - $type = $pmaString->substr($ref_data, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($ref_data, '('); + $type = /*overload*/mb_substr($ref_data, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { @@ -470,8 +470,8 @@ class PMA_GIS_Visualization // Figure out the data type $ref_data = $row[$this->_settings['spatialColumn']]; - $type_pos = $pmaString->stripos($ref_data, '('); - $type = $pmaString->substr($ref_data, 0, $type_pos); + $type_pos = /*overload*/mb_stripos($ref_data, '('); + $type = /*overload*/mb_substr($ref_data, 0, $type_pos); $gis_obj = PMA_GIS_Factory::factory($type); if (! $gis_obj) { diff --git a/libraries/iconv_wrapper.lib.php b/libraries/iconv_wrapper.lib.php index 67ee0a14af..9d1bf7f8cd 100644 --- a/libraries/iconv_wrapper.lib.php +++ b/libraries/iconv_wrapper.lib.php @@ -75,12 +75,9 @@ function PMA_convertAIXMapCharsets($in_charset, $out_charset) { global $gnu_iconv_to_aix_iconv_codepage_map; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // Check for transliteration argument at the end of output character set name - $translit_search = $pmaString->strpos( - $pmaString->strtolower($out_charset), + $translit_search = /*overload*/mb_strpos( + /*overload*/mb_strtolower($out_charset), '//translit' ); $using_translit = (!($translit_search === false)); @@ -88,28 +85,28 @@ function PMA_convertAIXMapCharsets($in_charset, $out_charset) // Extract "plain" output character set name // (without any transliteration argument) $out_charset_plain = ($using_translit - ? $pmaString->substr($out_charset, 0, $translit_search) + ? /*overload*/mb_substr($out_charset, 0, $translit_search) : $out_charset); // Transform name of input character set (if found) $in_charset_exisits = array_key_exists( - $pmaString->strtolower($in_charset), + /*overload*/mb_strtolower($in_charset), $gnu_iconv_to_aix_iconv_codepage_map ); if ($in_charset_exisits) { $in_charset = $gnu_iconv_to_aix_iconv_codepage_map[ - $pmaString->strtolower($in_charset) + /*overload*/mb_strtolower($in_charset) ]; } // Transform name of "plain" output character set (if found) $out_charset_plain_exists = array_key_exists( - $pmaString->strtolower($out_charset_plain), + /*overload*/mb_strtolower($out_charset_plain), $gnu_iconv_to_aix_iconv_codepage_map ); if ($out_charset_plain_exists) { $out_charset_plain = $gnu_iconv_to_aix_iconv_codepage_map[ - $pmaString->strtolower($out_charset_plain) + /*overload*/mb_strtolower($out_charset_plain) ]; } diff --git a/libraries/import.lib.php b/libraries/import.lib.php index a74b4a0b3c..bd3040312b 100644 --- a/libraries/import.lib.php +++ b/libraries/import.lib.php @@ -106,13 +106,13 @@ function PMA_importRunQuery($sql = '', $full = '', $controluser = false, // USE query changes the database, son need to track // while running multiple queries $is_use_query - = ($pmaString->stripos($import_run_buffer['sql'], "use ") !== false) + = (/*overload*/mb_stripos($import_run_buffer['sql'], "use ") !== false) ? true : false; $max_sql_len = max( $max_sql_len, - $pmaString->strlen($import_run_buffer['sql']) + /*overload*/mb_strlen($import_run_buffer['sql']) ); if (! $sql_query_disabled) { $sql_query .= $import_run_buffer['full']; @@ -255,7 +255,7 @@ function PMA_importRunQuery($sql = '', $full = '', $controluser = false, // the complete query in the textarea) if (! $go_sql && $run_query) { if (! empty($sql_query)) { - if ($pmaString->strlen($sql_query) > 50000 + if (/*overload*/mb_strlen($sql_query) > 50000 || $executed_queries > 50 || $max_sql_len > 1000 ) { @@ -360,14 +360,13 @@ function PMA_importGetNextChunk($size = 32768) if ($GLOBALS['import_file'] == 'none') { // Well this is not yet supported and tested, // but should return content of textarea - if ($pmaString->strlen($GLOBALS['import_text']) < $size) { + if (/*overload*/mb_strlen($GLOBALS['import_text']) < $size) { $GLOBALS['finished'] = true; return $GLOBALS['import_text']; } else { - $r = $pmaString->substr($GLOBALS['import_text'], 0, $size); + $r = /*overload*/mb_substr($GLOBALS['import_text'], 0, $size); $GLOBALS['offset'] += $size; - $GLOBALS['import_text'] = $pmaString - ->substr($GLOBALS['import_text'], $size); + $GLOBALS['import_text'] = /*overload*/mb_substr($GLOBALS['import_text'], $size); return $r; } } @@ -382,8 +381,8 @@ function PMA_importGetNextChunk($size = 32768) $GLOBALS['finished'] = feof($import_handle); break; case 'application/zip': - $result = $pmaString->substr($GLOBALS['import_text'], 0, $size); - $GLOBALS['import_text'] = $pmaString->substr($GLOBALS['import_text'], $size); + $result = /*overload*/mb_substr($GLOBALS['import_text'], 0, $size); + $GLOBALS['import_text'] = /*overload*/mb_substr($GLOBALS['import_text'], $size); $GLOBALS['finished'] = empty($GLOBALS['import_text']); break; case 'none': @@ -407,12 +406,12 @@ function PMA_importGetNextChunk($size = 32768) if ($GLOBALS['offset'] == $size) { // UTF-8 if (strncmp($result, "\xEF\xBB\xBF", 3) == 0) { - $result = $pmaString->substr($result, 3); + $result = /*overload*/mb_substr($result, 3); // UTF-16 BE, LE } elseif (strncmp($result, "\xFE\xFF", 2) == 0 || strncmp($result, "\xFF\xFE", 2) == 0 ) { - $result = $pmaString->substr($result, 2); + $result = /*overload*/mb_substr($result, 2); } } return $result; @@ -470,10 +469,10 @@ function PMA_getColumnAlphaName($num) if ($num == 0) { // use 'Z' if column number is 0, // this is necessary because A-Z has no 'zero' - $col_name .= $pmaString->chr(($A + 26) - 1); + $col_name .= /*overload*/mb_chr(($A + 26) - 1); } else { // convert column number to ASCII character - $col_name .= $pmaString->chr(($A + $num) - 1); + $col_name .= /*overload*/mb_chr(($A + $num) - 1); } return $col_name; @@ -501,8 +500,8 @@ function PMA_getColumnNumberFromName($name) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $name = $pmaString->strtoupper($name); - $num_chars = $pmaString->strlen($name); + $name = /*overload*/mb_strtoupper($name); + $num_chars = /*overload*/mb_strlen($name); $column_number = 0; for ($i = 0; $i < $num_chars; ++$i) { // read string from back to front @@ -512,7 +511,7 @@ function PMA_getColumnNumberFromName($name) // and subtract 64 to get corresponding decimal value // ASCII value of "A" is 65, "B" is 66, etc. // Decimal equivalent of "A" is 1, "B" is 2, etc. - $number = (int)($pmaString->ord($name[$char_pos]) - 64); + $number = (int)(/*overload*/mb_ord($name[$char_pos]) - 64); // base26 to base10 conversion : multiply each number // with corresponding value of the position, in this case @@ -561,10 +560,10 @@ function PMA_getDecimalPrecision($last_cumulative_size) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - return (int)$pmaString->substr( + return (int)/*overload*/mb_substr( $last_cumulative_size, 0, - $pmaString->strpos($last_cumulative_size, ",") + /*overload*/mb_strpos($last_cumulative_size, ",") ); } @@ -581,11 +580,11 @@ function PMA_getDecimalScale($last_cumulative_size) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - return (int) $pmaString->substr( + return (int) /*overload*/mb_substr( $last_cumulative_size, - ($pmaString->strpos($last_cumulative_size, ",") + 1), - ($pmaString->strlen($last_cumulative_size) - - $pmaString->strpos($last_cumulative_size, ",")) + (/*overload*/mb_strpos($last_cumulative_size, ",") + 1), + (/*overload*/mb_strlen($last_cumulative_size) + - /*overload*/mb_strpos($last_cumulative_size, ",")) ); } @@ -602,8 +601,8 @@ function PMA_getDecimalSize($cell) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $curr_size = $pmaString->strlen((string)$cell); - $decPos = $pmaString->strpos($cell, "."); + $curr_size = /*overload*/mb_strlen((string)$cell); + $decPos = /*overload*/mb_strpos($cell, "."); $decPrecision = ($curr_size - 1) - $decPos; $m = $curr_size - 1; @@ -632,7 +631,7 @@ function PMA_detectSize($last_cumulative_size, $last_cumulative_type, ) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $curr_size = $pmaString->strlen((string)$cell); + $curr_size = /*overload*/mb_strlen((string)$cell); /** * If the cell is NULL, don't treat it as a varchar @@ -770,7 +769,7 @@ function PMA_detectSize($last_cumulative_size, $last_cumulative_type, $oldM = PMA_getDecimalPrecision($last_cumulative_size); $oldD = PMA_getDecimalScale($last_cumulative_size); $oldInt = $oldM - $oldD; - $newInt = $pmaString->strlen((string)$cell); + $newInt = /*overload*/mb_strlen((string)$cell); /* See which has the larger integer length */ if ($oldInt >= $newInt) { @@ -851,8 +850,8 @@ function PMA_detectType($last_cumulative_type, $cell) } if ($cell == (string)(float)$cell - && $pmaString->strpos($cell, ".") !== false - && $pmaString->substrCount($cell, ".") == 1 + && /*overload*/mb_strpos($cell, ".") !== false + && /*overload*/mb_substr_count($cell, ".") == 1 ) { return DECIMAL; } diff --git a/libraries/insert_edit.lib.php b/libraries/insert_edit.lib.php index 901d9ed725..0b5675b6d7 100644 --- a/libraries/insert_edit.lib.php +++ b/libraries/insert_edit.lib.php @@ -311,8 +311,8 @@ function PMA_isColumnBinary($column) // The type column. // Fix for bug #3152931 'ENUM and SET cannot have "Binary" option' - if ($pmaString->stripos($column['Type'], 'binary') === 0 - || $pmaString->stripos($column['Type'], 'varbinary') === 0 + if (/*overload*/mb_stripos($column['Type'], 'binary') === 0 + || /*overload*/mb_stripos($column['Type'], 'varbinary') === 0 ) { return stristr($column['Type'], 'binary'); } else { @@ -335,10 +335,10 @@ function PMA_isColumnBlob($column) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->stripos($column['Type'], 'blob') === 0 - || $pmaString->stripos($column['Type'], 'tinyblob') === 0 - || $pmaString->stripos($column['Type'], 'mediumblob') === 0 - || $pmaString->stripos($column['Type'], 'longblob') === 0 + if (/*overload*/mb_stripos($column['Type'], 'blob') === 0 + || /*overload*/mb_stripos($column['Type'], 'tinyblob') === 0 + || /*overload*/mb_stripos($column['Type'], 'mediumblob') === 0 + || /*overload*/mb_stripos($column['Type'], 'longblob') === 0 ) { return stristr($column['Type'], 'blob'); } else { @@ -359,8 +359,8 @@ function PMA_isColumnChar($column) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->stripos($column['Type'], 'char') === 0 - || $pmaString->stripos($column['Type'], 'varchar') === 0 + if (/*overload*/mb_stripos($column['Type'], 'char') === 0 + || /*overload*/mb_stripos($column['Type'], 'varchar') === 0 ) { return stristr($column['Type'], 'char'); } else { @@ -438,8 +438,8 @@ function PMA_getFunctionColumn($column, $is_upload, $column_name_appendix, && $column['is_binary']) ) { $html_output .= '' . __('Binary') . '' . "\n"; - } elseif ($pmaString->strstr($column['True_Type'], 'enum') - || $pmaString->strstr($column['True_Type'], 'set') + } elseif (/*overload*/mb_strstr($column['True_Type'], 'enum') + || /*overload*/mb_strstr($column['True_Type'], 'set') || in_array($column['pma_type'], $no_support_types) ) { $html_output .= '--' . "\n"; @@ -526,13 +526,13 @@ function PMA_getNullifyCodeForNullColumn($column, $foreigners, $foreignData) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; $foreigner = PMA_searchColumnInForeigners($foreigners, $column['Field']); - if ($pmaString->strstr($column['True_Type'], 'enum')) { - if ($pmaString->strlen($column['Type']) > 20) { + if (/*overload*/mb_strstr($column['True_Type'], 'enum')) { + if (/*overload*/mb_strlen($column['Type']) > 20) { $nullify_code = '1'; } else { $nullify_code = '2'; } - } elseif ($pmaString->strstr($column['True_Type'], 'set')) { + } elseif (/*overload*/mb_strstr($column['True_Type'], 'set')) { $nullify_code = '3'; } elseif ($foreigners && $foreigner @@ -617,7 +617,7 @@ function PMA_getValueColumn($column, $backup_field, $column_name_appendix, ); } elseif ($GLOBALS['cfg']['LongtextDoubleTextarea'] - && $pmaString->strstr($column['pma_type'], 'longtext') + && /*overload*/mb_strstr($column['pma_type'], 'longtext') ) { $html_output = ' '; $html_output .= ''; @@ -629,7 +629,7 @@ function PMA_getValueColumn($column, $backup_field, $column_name_appendix, $special_chars_encoded, $data_type ); - } elseif ($pmaString->strstr($column['pma_type'], 'text')) { + } elseif (/*overload*/mb_strstr($column['pma_type'], 'text')) { $html_output .= PMA_getTextarea( $column, $backup_field, $column_name_appendix, $unnullify_trigger, @@ -637,7 +637,7 @@ function PMA_getValueColumn($column, $backup_field, $column_name_appendix, $special_chars_encoded, $data_type ); $html_output .= "\n"; - if ($pmaString->strlen($special_chars) > 32000) { + if (/*overload*/mb_strlen($special_chars) > 32000) { $html_output .= "\n"; $html_output .= '' . __( 'Because of its length,
this column might not be editable.' @@ -807,7 +807,7 @@ function PMA_getTextarea($column, $backup_field, $column_name_appendix, $extracted_columnspec = PMA_Util::extractColumnSpec($column['Type']); $maxlength = $extracted_columnspec['spec_in_brackets']; } elseif ($GLOBALS['cfg']['LongtextDoubleTextarea'] - && $GLOBALS['PMA_String']->strstr($column['pma_type'], 'longtext') + && /*overload*/mb_strstr($column['pma_type'], 'longtext') ) { $textAreaRows = $GLOBALS['cfg']['TextareaRows'] * 2; $textareaCols = $GLOBALS['cfg']['TextareaCols'] * 2; @@ -862,7 +862,7 @@ function PMA_getPmaTypeEnum($column, $backup_field, $column_name_appendix, $html_output .= ''; $html_output .= "\n" . ' ' . $backup_field . "\n"; - if ($GLOBALS['PMA_String']->strlen($column['Type']) > 20) { + if (/*overload*/mb_strlen($column['Type']) > 20) { $html_output .= PMA_getDropDownDependingOnLength( $column, $column_name_appendix, $unnullify_trigger, $tabindex, $tabindex_for_value, $idindex, $data, $column_enum_values @@ -1095,7 +1095,7 @@ function PMA_getBinaryAndBlobColumn( $html_output .= __('Binary - do not edit'); if (isset($data)) { $data_size = PMA_Util::formatByteDown( - $GLOBALS['PMA_String']->strlen(stripslashes($data)), 3, 1 + /*overload*/mb_strlen(stripslashes($data)), 3, 1 ); $html_output .= ' (' . $data_size[0] . ' ' . $data_size[1] . ')'; unset($data_size); @@ -1308,7 +1308,7 @@ function PMA_getValueColumnForOtherDatatypes($column, $default_char_editing, $html_output = $backup_field . "\n"; if ($column['is_char'] && ($GLOBALS['cfg']['CharEditing'] == 'textarea' - || $pmaString->strpos($data, "\n") !== false) + || /*overload*/mb_strpos($data, "\n") !== false) ) { $html_output .= "\n"; $GLOBALS['cfg']['CharEditing'] = $default_char_editing; @@ -1327,11 +1327,11 @@ function PMA_getValueColumnForOtherDatatypes($column, $default_char_editing, $html_output .= ''; } - if ($pmaString->substr($column['pma_type'], 0, 9) == 'timestamp') { + if (/*overload*/mb_substr($column['pma_type'], 0, 9) == 'timestamp') { $html_output .= ''; } - if ($pmaString->substr($column['pma_type'], 0, 8) == 'datetime') { + if (/*overload*/mb_substr($column['pma_type'], 0, 8) == 'datetime') { $html_output .= ''; } @@ -1341,7 +1341,7 @@ function PMA_getValueColumnForOtherDatatypes($column, $default_char_editing, } if ($column['pma_type'] == 'date' || $column['pma_type'] == 'datetime' - || $pmaString->substr($column['pma_type'], 0, 9) == 'timestamp' + || /*overload*/mb_substr($column['pma_type'], 0, 9) == 'timestamp' ) { // the _3 suffix points to the date field // the _2 suffix points to the corresponding NULL checkbox @@ -1672,10 +1672,10 @@ function PMA_getSpecialCharsAndBackupFieldForExistingRow( $current_row[$column['Field']], $extracted_columnspec['spec_in_brackets'] ); - } elseif (($pmaString->substr($column['True_Type'], 0, 9) == 'timestamp' + } elseif ((/*overload*/mb_substr($column['True_Type'], 0, 9) == 'timestamp' || $column['True_Type'] == 'datetime' || $column['True_Type'] == 'time') - && ($pmaString->strpos($current_row[$column['Field']], ".") === true) + && (/*overload*/mb_strpos($current_row[$column['Field']], ".") === true) ) { $current_row[$column['Field']] = $as_is ? $current_row[$column['Field']] @@ -1718,7 +1718,7 @@ function PMA_getSpecialCharsAndBackupFieldForExistingRow( && $_REQUEST['default_action'] === 'insert' ) { if ($column['Key'] === 'PRI' - && $pmaString->strpos($column['Extra'], 'auto_increment') !== false + && /*overload*/mb_strpos($column['Extra'], 'auto_increment') !== false ) { $data = $special_chars_encoded = $special_chars = null; } @@ -1764,7 +1764,7 @@ function PMA_getSpecialCharsAndBackupFieldForInsertingMode( if ($trueType == 'bit') { $special_chars = PMA_Util::convertBitDefaultValue($column['Default']); - } elseif ($GLOBALS['PMA_String']->substr($trueType, 0, 9) == 'timestamp' + } elseif (/*overload*/mb_substr($trueType, 0, 9) == 'timestamp' || $trueType == 'datetime' || $trueType == 'time' ) { @@ -1890,13 +1890,13 @@ function PMA_getGotoInclude($goto_include) $goto_include = $GLOBALS['goto']; } if ($GLOBALS['goto'] == 'db_sql.php' - && $pmaString->strlen($GLOBALS['table']) + && /*overload*/mb_strlen($GLOBALS['table']) ) { $GLOBALS['table'] = ''; } } if (! $goto_include) { - if (! $pmaString->strlen($GLOBALS['table'])) { + if (! /*overload*/mb_strlen($GLOBALS['table'])) { $goto_include = 'db_sql.php'; } else { $goto_include = 'tbl_sql.php'; @@ -2054,7 +2054,7 @@ function PMA_getDisplayValueForForeignTableColumn($where_comparison, $foreigner['foreign_table'] ); // Field to display from the foreign table? - if (isset($display_field) && $GLOBALS['PMA_String']->strlen($display_field)) { + if (isset($display_field) && /*overload*/mb_strlen($display_field)) { $dispsql = 'SELECT ' . PMA_Util::backquote($display_field) . ' FROM ' . PMA_Util::backquote($foreigner['foreign_db']) . '.' . PMA_Util::backquote($foreigner['foreign_table']) @@ -2205,12 +2205,12 @@ function PMA_getCurrentValueAsAnArrayForMultipleEdit( $multi_edit_funcs, $uuid = $GLOBALS['dbi']->fetchValue('SELECT UUID()'); return "'" . $uuid . "'"; } elseif ((in_array($multi_edit_funcs[$key], $gis_from_text_functions) - && $pmaString->substr($current_value, 0, 3) == "'''") + && /*overload*/mb_substr($current_value, 0, 3) == "'''") || in_array($multi_edit_funcs[$key], $gis_from_wkb_functions) ) { // Remove enclosing apostrophes - $current_value = $pmaString->substr( - $current_value, 1, $pmaString->strlen($current_value) - 2 + $current_value = /*overload*/mb_substr( + $current_value, 1, /*overload*/mb_strlen($current_value) - 2 ); // Remove escaping apostrophes $current_value = str_replace("''", "'", $current_value); @@ -2260,7 +2260,7 @@ function PMA_getQueryValuesForInsertAndUpdateInMultipleEdit($multi_edit_columns_ // i n s e r t if ($is_insert) { // no need to add column into the valuelist - if ($GLOBALS['PMA_String']->strlen($current_value_as_an_array)) { + if (/*overload*/mb_strlen($current_value_as_an_array)) { $query_values[] = $current_value_as_an_array; // first inserted row so prepare the list of fields if (empty($value_sets)) { @@ -2347,7 +2347,7 @@ function PMA_getCurrentValueForDifferentTypes($possibly_uploaded_val, $key, } if ($type != 'protected' && $type != 'set' - && 0 === $GLOBALS['PMA_String']->strlen($current_value) + && 0 === /*overload*/mb_strlen($current_value) ) { // best way to avoid problems in strict mode // (works also in non-strict mode) @@ -2442,7 +2442,7 @@ function PMA_verifyWhetherValueCanBeTruncatedAndAppendExtraData( $meta = $fields_meta[0]; $new_value = $GLOBALS['dbi']->fetchValue($result); if ($new_value !== false) { - if (($GLOBALS['PMA_String']->substr($meta->type, 0, 9) == 'timestamp') + if ((/*overload*/mb_substr($meta->type, 0, 9) == 'timestamp') || ($meta->type == 'datetime') || ($meta->type == 'time') ) { @@ -2632,7 +2632,7 @@ function PMA_getHtmlForFunctionOption($odd_row, $column, $column_name_appendix) return '' . 'strstr($column['True_Type'], 'longtext') + && /*overload*/mb_strstr($column['True_Type'], 'longtext') ? 'rowspan="2"' : '' ) diff --git a/libraries/ip_allow_deny.lib.php b/libraries/ip_allow_deny.lib.php index 1fe7ad051d..0c84b833bc 100644 --- a/libraries/ip_allow_deny.lib.php +++ b/libraries/ip_allow_deny.lib.php @@ -65,11 +65,8 @@ function PMA_getIp() */ function PMA_ipMaskTest($testRange, $ipToTest) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - if ($pmaString->strpos($testRange, ':') > -1 - || $pmaString->strpos($ipToTest, ':') > -1 + if (/*overload*/mb_strpos($testRange, ':') > -1 + || /*overload*/mb_strpos($ipToTest, ':') > -1 ) { // assume IPv6 $result = PMA_ipv6MaskTest($testRange, $ipToTest); @@ -181,15 +178,12 @@ function PMA_ipv6MaskTest($test_range, $ip_to_test) { $result = true; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // convert to lowercase for easier comparison - $test_range = $pmaString->strtolower($test_range); - $ip_to_test = $pmaString->strtolower($ip_to_test); + $test_range = /*overload*/mb_strtolower($test_range); + $ip_to_test = /*overload*/mb_strtolower($ip_to_test); - $is_cidr = $pmaString->strpos($test_range, '/') > -1; - $is_range = $pmaString->strpos($test_range, '[') > -1; + $is_cidr = /*overload*/mb_strpos($test_range, '/') > -1; + $is_range = /*overload*/mb_strpos($test_range, '[') > -1; $is_single = ! $is_cidr && ! $is_range; $ip_hex = bin2hex(inet_pton($ip_to_test)); @@ -238,7 +232,7 @@ function PMA_ipv6MaskTest($test_range, $ip_to_test) $pos = 31; while ($flexbits > 0) { // Get the character at this position - $orig = $pmaString->substr($last_hex, $pos, 1); + $orig = /*overload*/mb_substr($last_hex, $pos, 1); // Convert it to an integer $origval = hexdec($orig); diff --git a/libraries/mime.lib.php b/libraries/mime.lib.php index 529a2d1d27..02b8242bd2 100644 --- a/libraries/mime.lib.php +++ b/libraries/mime.lib.php @@ -21,14 +21,14 @@ function PMA_detectMIME(&$test) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $len = $pmaString->strlen($test); + $len = /*overload*/mb_strlen($test); if ($len >= 2 && $test[0] == chr(0xff) && $test[1] == chr(0xd8)) { return 'image/jpeg'; } - if ($len >= 3 && $pmaString->substr($test, 0, 3) == 'GIF') { + if ($len >= 3 && /*overload*/mb_substr($test, 0, 3) == 'GIF') { return 'image/gif'; } - if ($len >= 4 && $pmaString->substr($test, 0, 4) == "\x89PNG") { + if ($len >= 4 && /*overload*/mb_substr($test, 0, 4) == "\x89PNG") { return 'image/png'; } return 'application/octet-stream'; diff --git a/libraries/mult_submits.inc.php b/libraries/mult_submits.inc.php index 340a2d5079..48cc5633b5 100644 --- a/libraries/mult_submits.inc.php +++ b/libraries/mult_submits.inc.php @@ -154,11 +154,11 @@ if (!empty($submit_mult) && !empty($what)) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($table)) { + if (/*overload*/mb_strlen($table)) { include './libraries/tbl_common.inc.php'; $url_query .= '&goto=tbl_sql.php&back=tbl_sql.php'; include './libraries/tbl_info.inc.php'; - } elseif ($pmaString->strlen($db)) { + } elseif (/*overload*/mb_strlen($db)) { include './libraries/db_common.inc.php'; include './libraries/db_info.inc.php'; } else { diff --git a/libraries/mult_submits.lib.php b/libraries/mult_submits.lib.php index fece2e569d..c10904b4a7 100644 --- a/libraries/mult_submits.lib.php +++ b/libraries/mult_submits.lib.php @@ -34,11 +34,9 @@ function PMA_getUrlParams( 'query_type' => $what, 'reload' => (! empty($reload) ? 1 : 0), ); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strpos(' ' . $action, 'db_') == 1) { + if (/*overload*/mb_strpos(' ' . $action, 'db_') == 1) { $_url_params['db']= $db; - } elseif ($pmaString->strpos(' ' . $action, 'tbl_') == 1 + } elseif (/*overload*/mb_strpos(' ' . $action, 'tbl_') == 1 || $what == 'row_delete' ) { $_url_params['db']= $db; @@ -104,9 +102,6 @@ function PMA_getQueryStrFromSelected( $selected_cnt = count($selected); $deletes = false; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - for ($i = 0; $i < $selected_cnt; $i++) { switch ($query_type) { case 'row_delete': @@ -231,11 +226,10 @@ function PMA_getQueryStrFromSelected( case 'replace_prefix_tbl': $current = $selected[$i]; - $subFromPrefix = $pmaString - ->substr($current, 0, $pmaString->strlen($from_prefix)); + $subFromPrefix = /*overload*/mb_substr($current, 0, /*overload*/mb_strlen($from_prefix)); if ($subFromPrefix == $from_prefix) { $newtablename = $to_prefix - . $pmaString->substr($current, $pmaString->strlen($from_prefix)); + . /*overload*/mb_substr($current, /*overload*/mb_strlen($from_prefix)); } else { $newtablename = $current; } @@ -250,7 +244,7 @@ function PMA_getQueryStrFromSelected( case 'copy_tbl_change_prefix': $current = $selected[$i]; $newtablename = $to_prefix . - $pmaString->substr($current, $pmaString->strlen($from_prefix)); + /*overload*/mb_substr($current, /*overload*/mb_strlen($from_prefix)); // COPY TABLE AND CHANGE PREFIX PATTERN $a_query = 'CREATE TABLE ' . PMA_Util::backquote($newtablename) diff --git a/libraries/navigation/NavigationHeader.class.php b/libraries/navigation/NavigationHeader.class.php index 7d4d2019bb..41cccdde41 100644 --- a/libraries/navigation/NavigationHeader.class.php +++ b/libraries/navigation/NavigationHeader.class.php @@ -110,10 +110,10 @@ class PMA_NavigationHeader $pmaString = $GLOBALS['PMA_String']; // do not add our parameters for an external link - $navLogoLinkLower = $pmaString->strtolower( + $navLogoLinkLower = /*overload*/mb_strtolower( $GLOBALS['cfg']['NavigationLogoLink'] ); - if ($pmaString->substr($navLogoLinkLower, 0, 4) !== '://') { + if (/*overload*/mb_substr($navLogoLinkLower, 0, 4) !== '://') { $retval .= '?' . $GLOBALS['url_query'] . '"'; } else { $retval .= '" target="_blank"'; diff --git a/libraries/navigation/NavigationTree.class.php b/libraries/navigation/NavigationTree.class.php index 8e62ea08f0..1edc1b225d 100644 --- a/libraries/navigation/NavigationTree.class.php +++ b/libraries/navigation/NavigationTree.class.php @@ -568,7 +568,7 @@ class PMA_NavigationTree $separators = array(); if (is_array($node->separator)) { $separators = $node->separator; - } else if ($pmaString->strlen($node->separator)) { + } else if (/*overload*/mb_strlen($node->separator)) { $separators[] = $node->separator; } $prefixes = array(); @@ -576,9 +576,9 @@ class PMA_NavigationTree foreach ($node->children as $child) { $prefix_pos = false; foreach ($separators as $separator) { - $sep_pos = $pmaString->strpos($child->name, $separator); + $sep_pos = /*overload*/mb_strpos($child->name, $separator); if ($sep_pos != false - && $sep_pos != $pmaString->strlen($child->name) + && $sep_pos != /*overload*/mb_strlen($child->name) && $sep_pos != 0 && ($prefix_pos == false || $sep_pos < $prefix_pos) ) { @@ -586,7 +586,7 @@ class PMA_NavigationTree } } if ($prefix_pos !== false) { - $prefix = $pmaString->substr($child->name, 0, $prefix_pos); + $prefix = /*overload*/mb_substr($child->name, 0, $prefix_pos); if (! isset($prefixes[$prefix])) { $prefixes[$prefix] = 1; } else { @@ -643,10 +643,10 @@ class PMA_NavigationTree foreach ($separators as $separator) { // FIXME: this could be more efficient foreach ($node->children as $child) { - $name_substring = $pmaString->substr( + $name_substring = /*overload*/mb_substr( $child->name, 0, - $pmaString->strlen($key) + $pmaString->strlen($separator) + /*overload*/mb_strlen($key) + /*overload*/mb_strlen($separator) ); if (($name_substring != $key . $separator && $child->name != $key) @@ -657,10 +657,10 @@ class PMA_NavigationTree $class = get_class($child); $new_child = PMA_NodeFactory::getInstance( $class, - $pmaString->substr( + /*overload*/mb_substr( $child->name, - $pmaString->strlen($key) - + $pmaString->strlen($separator) + /*overload*/mb_strlen($key) + + /*overload*/mb_strlen($separator) ) ); $new_child->real_name = $child->real_name; @@ -896,7 +896,7 @@ class PMA_NavigationTree $iClass = " class='first'"; } $retval .= ""; - if ($GLOBALS['PMA_String']->strpos($class, 'last') === false) { + if (/*overload*/mb_strpos($class, 'last') === false) { $retval .= ""; } diff --git a/libraries/navigation/Nodes/Node_Database.class.php b/libraries/navigation/Nodes/Node_Database.class.php index e1e62cf0d0..4cb86a1bf6 100644 --- a/libraries/navigation/Nodes/Node_Database.class.php +++ b/libraries/navigation/Nodes/Node_Database.class.php @@ -307,7 +307,7 @@ class Node_Database extends Node . "." . PMA_Util::backquote($cfgRelation['navigationhiding']); $sqlQuery = "SELECT `item_name` FROM " . $navTable . " WHERE `username`='" . $cfgRelation['user'] . "'" - . " AND `item_type`='" . $GLOBALS['PMA_String']->substr($type, 0, -1) + . " AND `item_type`='" . /*overload*/mb_substr($type, 0, -1) . "'" . " AND `db_name`='" . PMA_Util::sqlAddSlashes($db) . "'"; $result = PMA_queryAsControlUser($sqlQuery, false); if ($result) { diff --git a/libraries/normalization.lib.php b/libraries/normalization.lib.php index 5cb500f268..6e620af179 100644 --- a/libraries/normalization.lib.php +++ b/libraries/normalization.lib.php @@ -43,7 +43,7 @@ function PMA_getHtmlForColumnsList( $type = $extracted_columnspec['type']; } if (empty($columnTypeList) - || in_array($GLOBALS['PMA_String']->strtoupper($type), $columnTypeList) + || in_array(/*overload*/mb_strtoupper($type), $columnTypeList) ) { if ($listType == 'checkbox') { $selectColHtml .= 'strtolower( + $_REQUEST['newname'] = /*overload*/mb_strtolower( $_REQUEST['newname'] ); } @@ -855,9 +855,7 @@ function PMA_getTableOptionFieldset($comment, $tbl_collation, ); } // end if (ARIA) - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($auto_increment) > 0 + if (/*overload*/mb_strlen($auto_increment) > 0 && ($is_myisam_or_aria || $is_innodb || $is_pbxt) ) { $html_output .= '' @@ -878,7 +876,7 @@ function PMA_getTableOptionFieldset($comment, $tbl_collation, if (isset($possible_row_formats[$tbl_storage_engine])) { $current_row_format - = $pmaString->strtoupper($GLOBALS['showtable']['Row_format']); + = /*overload*/mb_strtoupper($GLOBALS['showtable']['Row_format']); $html_output .= '' . '' . ''; @@ -1451,10 +1449,8 @@ function PMA_getTableAltersArray($is_myisam_or_aria, $is_isam, $pack_keys, . PMA_Util::sqlAddSlashes($_REQUEST['comment']) . '\''; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; if (! empty($newTblStorageEngine) - && $pmaString->strtolower($newTblStorageEngine) !== $pmaString->strtolower($GLOBALS['tbl_storage_engine']) + && /*overload*/mb_strtolower($newTblStorageEngine) !== /*overload*/mb_strtolower($GLOBALS['tbl_storage_engine']) ) { $table_alters[] = 'ENGINE = ' . $newTblStorageEngine; } @@ -1513,11 +1509,11 @@ function PMA_getTableAltersArray($is_myisam_or_aria, $is_isam, $pack_keys, } $newRowFormat = $_REQUEST['new_row_format']; - $newRowFormatLower = $pmaString->strtolower($newRowFormat); + $newRowFormatLower = /*overload*/mb_strtolower($newRowFormat); if (($is_myisam_or_aria || $is_innodb || $is_pbxt) && ! empty($newRowFormat) - && (!$pmaString->strlen($row_format) - || $newRowFormatLower !== $pmaString->strtolower($row_format)) + && (!/*overload*/mb_strlen($row_format) + || $newRowFormatLower !== /*overload*/mb_strtolower($row_format)) ) { $table_alters[] = 'ROW_FORMAT = ' . PMA_Util::sqlAddSlashes($newRowFormat); } @@ -1535,7 +1531,7 @@ function PMA_getTableAltersArray($is_myisam_or_aria, $is_isam, $pack_keys, */ function PMA_setGlobalVariablesForEngine($tbl_storage_engine) { - $upperTblStorEngine = $GLOBALS['PMA_String']->strtoupper($tbl_storage_engine); + $upperTblStorEngine = /*overload*/mb_strtoupper($tbl_storage_engine); //Options that apply to MYISAM usually apply to ARIA $is_myisam_or_aria = ($upperTblStorEngine == 'MYISAM' @@ -1601,7 +1597,7 @@ function PMA_getQueryAndResultForPartition() /** - * Move or copy a table + * Move or copy a table * * @param string $db current database name * @param string $table current table name diff --git a/libraries/parse_analyze.inc.php b/libraries/parse_analyze.inc.php index 9eb7c9129a..1864b010e0 100644 --- a/libraries/parse_analyze.inc.php +++ b/libraries/parse_analyze.inc.php @@ -130,7 +130,7 @@ if ($is_select) { $table = $analyzed_sql[0]['table_ref'][0]['table_true_name']; } if (isset($analyzed_sql[0]['table_ref'][0]['db']) - && $GLOBALS['PMA_String']->strlen($analyzed_sql[0]['table_ref'][0]['db']) + && /*overload*/mb_strlen($analyzed_sql[0]['table_ref'][0]['db']) ) { $db = $analyzed_sql[0]['table_ref'][0]['db']; } else { diff --git a/libraries/plugin_interface.lib.php b/libraries/plugin_interface.lib.php index 80f9bdc3bb..afbbe0e5f5 100644 --- a/libraries/plugin_interface.lib.php +++ b/libraries/plugin_interface.lib.php @@ -23,14 +23,11 @@ function PMA_getPlugin( $plugins_dir, $plugin_param = false ) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $GLOBALS['plugin_param'] = $plugin_param; - $class_name = $pmaString->strtoupper($plugin_type[0]) - . $pmaString->strtolower($pmaString->substr($plugin_type, 1)) - . $pmaString->strtoupper($plugin_format[0]) - . $pmaString->strtolower($pmaString->substr($plugin_format, 1)); + $class_name = /*overload*/mb_strtoupper($plugin_type[0]) + . /*overload*/mb_strtolower(/*overload*/mb_substr($plugin_type, 1)) + . /*overload*/mb_strtoupper($plugin_format[0]) + . /*overload*/mb_strtolower(/*overload*/mb_substr($plugin_format, 1)); $file = $class_name . ".class.php"; if (is_file($plugins_dir . $file)) { include_once $plugins_dir . $file; @@ -60,8 +57,6 @@ function PMA_getPlugins($plugin_type, $plugins_dir, $plugin_param) return $plugin_list; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; //@todo Find a way to use PMA_StringMB with UTF-8 instead of mb_*. while ($file = @readdir($handle)) { // In some situations, Mac OS creates a new file for each file @@ -69,7 +64,7 @@ function PMA_getPlugins($plugin_type, $plugins_dir, $plugin_param) // matches a file which does not start with a dot but ends // with ".php" $class_type = mb_strtoupper($plugin_type[0], 'UTF-8') - . mb_strtolower($pmaString->substr($plugin_type, 1), 'UTF-8'); + . mb_strtolower(/*overload*/mb_substr($plugin_type, 1), 'UTF-8'); if (is_file($plugins_dir . $file) && preg_match( '@^' . $class_type . '(.+)\.class\.php$@i', @@ -196,11 +191,9 @@ function PMA_pluginGetChoice($section, $name, &$list, $cfgname = null) } $ret = 'strpos(get_class($propertyGroup), "PropertyItem")) { + if (/*overload*/mb_strpos(get_class($propertyGroup), "PropertyItem")) { $properties = array($propertyGroup); } else { // for main groups @@ -297,7 +287,7 @@ function PMA_pluginGetOneOption( foreach ($properties as $propertyItem) { $property_class = get_class($propertyItem); // if the property is a subgroup, we deal with it recursively - if ($pmaString->strpos($property_class, "Subgroup")) { + if (/*overload*/mb_strpos($property_class, "Subgroup")) { // for subgroups // each subgroup can have a header, which may also be a form element $subgroup_header = $propertyItem->getSubgroupHeader(); @@ -512,9 +502,6 @@ function PMA_pluginGetOneOption_getHtmlForProperty( */ function PMA_pluginGetOptions($section, &$list) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $ret = ''; // Options for plugins that support them foreach ($list as $plugin) { @@ -524,8 +511,8 @@ function PMA_pluginGetOptions($section, &$list) $options = $properties->getOptions(); } - $plugin_name = $pmaString->strtolower( - $pmaString->substr(get_class($plugin), $pmaString->strlen($section)) + $plugin_name = /*overload*/mb_strtolower( + /*overload*/mb_substr(get_class($plugin), /*overload*/mb_strlen($section)) ); $ret .= '
'; diff --git a/libraries/plugins/ImportPlugin.class.php b/libraries/plugins/ImportPlugin.class.php index f33770c5ef..26476090a7 100644 --- a/libraries/plugins/ImportPlugin.class.php +++ b/libraries/plugins/ImportPlugin.class.php @@ -63,10 +63,7 @@ abstract class ImportPlugin */ protected function getDbnameAndOptions($currentDb, $defaultDb) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - if ($pmaString->strlen($currentDb)) { + if (/*overload*/mb_strlen($currentDb)) { $db_name = $currentDb; $options = array('create_db' => false); } else { diff --git a/libraries/plugins/auth/AuthenticationCookie.class.php b/libraries/plugins/auth/AuthenticationCookie.class.php index a53f511685..f154c531dc 100644 --- a/libraries/plugins/auth/AuthenticationCookie.class.php +++ b/libraries/plugins/auth/AuthenticationCookie.class.php @@ -590,15 +590,12 @@ class AuthenticationCookie extends AuthenticationPlugin // URL where to go: $redirect_url = $cfg['PmaAbsoluteUri'] . 'index.php'; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - // any parameters to pass? $url_params = array(); - if ($pmaString->strlen($GLOBALS['db'])) { + if (/*overload*/mb_strlen($GLOBALS['db'])) { $url_params['db'] = $GLOBALS['db']; } - if ($pmaString->strlen($GLOBALS['table'])) { + if (/*overload*/mb_strlen($GLOBALS['table'])) { $url_params['table'] = $GLOBALS['table']; } // any target to pass? diff --git a/libraries/plugins/export/ExportCsv.class.php b/libraries/plugins/export/ExportCsv.class.php index 21d0c1121b..b8a7bb4067 100644 --- a/libraries/plugins/export/ExportCsv.class.php +++ b/libraries/plugins/export/ExportCsv.class.php @@ -132,7 +132,7 @@ class ExportCsv extends ExportPlugin } } else { if (empty($csv_terminated) - || $GLOBALS['PMA_String']->strtolower($csv_terminated) == 'auto' + || /*overload*/mb_strtolower($csv_terminated) == 'auto' ) { $csv_terminated = $GLOBALS['crlf']; } else { @@ -244,7 +244,7 @@ class ExportCsv extends ExportPlugin $schema_insert .= $csv_separator; } // end for $schema_insert = trim( - $GLOBALS['PMA_String']->substr($schema_insert, 0, -1) + /*overload*/mb_substr($schema_insert, 0, -1) ); if (! PMA_exportOutputHandler($schema_insert . $csv_terminated)) { return false; diff --git a/libraries/plugins/export/ExportLatex.class.php b/libraries/plugins/export/ExportLatex.class.php index a2b126bd3f..dc34092c75 100644 --- a/libraries/plugins/export/ExportLatex.class.php +++ b/libraries/plugins/export/ExportLatex.class.php @@ -343,7 +343,7 @@ class ExportLatex extends ExportPlugin . self::texEscape(stripslashes($columns_alias[$i])) . '}} & '; } - $buffer = $GLOBALS['PMA_String']->substr($buffer, 0, -2) + $buffer = /*overload*/mb_substr($buffer, 0, -2) . '\\\\ \\hline \hline '; if (! PMA_exportOutputHandler($buffer . ' \\endfirsthead ' . $crlf)) { return false; @@ -575,9 +575,6 @@ class ExportLatex extends ExportPlugin return false; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $fields = $GLOBALS['dbi']->getColumns($db, $table); foreach ($fields as $row) { $extracted_columnspec @@ -629,16 +626,16 @@ class ExportLatex extends ExportPlugin } $local_buffer = self::texEscape($local_buffer); if ($row['Key']=='PRI') { - $pos = $pmaString->strpos($local_buffer, "\000"); + $pos = /*overload*/mb_strpos($local_buffer, "\000"); $local_buffer = '\\textit{' - . $pmaString->substr($local_buffer, 0, $pos) - . '}' . $pmaString->substr($local_buffer, $pos); + . /*overload*/mb_substr($local_buffer, 0, $pos) + . '}' . /*overload*/mb_substr($local_buffer, $pos); } if (in_array($field_name, $unique_keys)) { - $pos = $pmaString->strpos($local_buffer, "\000"); + $pos = /*overload*/mb_strpos($local_buffer, "\000"); $local_buffer = '\\textbf{' - . $pmaString->substr($local_buffer, 0, $pos) - . '}' . $pmaString->substr($local_buffer, $pos); + . /*overload*/mb_substr($local_buffer, 0, $pos) + . '}' . /*overload*/mb_substr($local_buffer, $pos); } $buffer = str_replace("\000", ' & ', $local_buffer); $buffer .= ' \\\\ \\hline ' . $crlf; diff --git a/libraries/plugins/export/ExportSql.class.php b/libraries/plugins/export/ExportSql.class.php index 47dfa12b54..ada4df9257 100644 --- a/libraries/plugins/export/ExportSql.class.php +++ b/libraries/plugins/export/ExportSql.class.php @@ -796,15 +796,12 @@ class ExportSql extends ExportPlugin if (PMA_DRIZZLE) { $create_query .= ' COLLATE ' . $collation; } else { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - if ($pmaString->strpos($collation, '_')) { + if (/*overload*/mb_strpos($collation, '_')) { $create_query .= ' DEFAULT CHARACTER SET ' - . $pmaString->substr( + . /*overload*/mb_substr( $collation, 0, - $pmaString->strpos($collation, '_') + /*overload*/mb_strpos($collation, '_') ) . ' COLLATE ' . $collation; } else { @@ -1226,20 +1223,17 @@ class ExportSql extends ExportPlugin return $this->_exportComment(__('in use') . '(' . $tmp_error . ')'); } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $warning = ''; if ($result != false && ($row = $GLOBALS['dbi']->fetchRow($result))) { $create_query = $row[1]; unset($row); // Convert end of line chars to one that we want (note that MySQL // doesn't return query it will accept in all cases) - if ($pmaString->strpos($create_query, "(\r\n ")) { + if (/*overload*/mb_strpos($create_query, "(\r\n ")) { $create_query = str_replace("\r\n", $crlf, $create_query); - } elseif ($pmaString->strpos($create_query, "(\n ")) { + } elseif (/*overload*/mb_strpos($create_query, "(\n ")) { $create_query = str_replace("\n", $crlf, $create_query); - } elseif ($pmaString->strpos($create_query, "(\r ")) { + } elseif (/*overload*/mb_strpos($create_query, "(\r ")) { $create_query = str_replace("\r", $crlf, $create_query); } @@ -1453,9 +1447,9 @@ class ExportSql extends ExportPlugin $sql_lines[$k] )) { //adds auto increment value - $increment_value = $pmaString->substr( + $increment_value = /*overload*/mb_substr( $sql_lines[$k], - $pmaString->strpos($sql_lines[$k], "AUTO_INCREMENT") + /*overload*/mb_strpos($sql_lines[$k], "AUTO_INCREMENT") ); $increment_value_array = explode(' ', $increment_value); $sql_auto_increments .= $increment_value_array[0] . ";"; @@ -1464,7 +1458,7 @@ class ExportSql extends ExportPlugin } if ($sql_auto_increments != '') { - $sql_auto_increments = $pmaString->substr( + $sql_auto_increments = /*overload*/mb_substr( $sql_auto_increments, 0, -1 ) . ';'; } @@ -1490,7 +1484,7 @@ class ExportSql extends ExportPlugin if (! $first) { $sql_constraints .= $crlf; } - $posConstraint = $pmaString->strpos( + $posConstraint = /*overload*/mb_strpos( $sql_lines[$j], 'CONSTRAINT' ); @@ -2079,8 +2073,6 @@ class ExportSql extends ExportPlugin $separator = ';'; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; while ($row = $GLOBALS['dbi']->fetchRow($result)) { if ($current_row == 0) { $head = $this->_possibleCRLF() @@ -2199,7 +2191,7 @@ class ExportSql extends ExportPlugin . implode(', ', $values) . ')'; } else { $insert_line = '(' . implode(', ', $values) . ')'; - $insertLineSize = $pmaString->strlen($insert_line); + $insertLineSize = /*overload*/mb_strlen($insert_line); $sql_max_size = $GLOBALS['sql_max_query_size']; if (isset($sql_max_size) && $sql_max_size > 0 @@ -2213,7 +2205,7 @@ class ExportSql extends ExportPlugin $insert_line = $schema_insert . $insert_line; } } - $query_size += $pmaString->strlen($insert_line); + $query_size += /*overload*/mb_strlen($insert_line); // Other inserts case } else { $insert_line = $schema_insert @@ -2414,9 +2406,6 @@ class ExportSql extends ExportPlugin $on_seen = false; $size = $tokens['len']; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - for ($i = 0; $i < $size && !$query_end; $i++) { $type = $tokens[$i]['type']; $data = $tokens[$i]['data']; @@ -2426,9 +2415,9 @@ class ExportSql extends ExportPlugin $d_unq = PMA_Util::unQuote($data); $d_unq_next = PMA_Util::unQuote($data_next); $d_unq_prev = PMA_Util::unQuote($data_prev); - $d_upper = $pmaString->strtoupper($d_unq); - $d_upper_next = $pmaString->strtoupper($d_unq_next); - $d_upper_prev = $pmaString->strtoupper($d_unq_prev); + $d_upper = /*overload*/mb_strtoupper($d_unq); + $d_upper_next = /*overload*/mb_strtoupper($d_unq_next); + $d_upper_prev = /*overload*/mb_strtoupper($d_unq_prev); $pos = $tokens[$i]['pos'] + $offset; if ($type === 'alpha_reservedWord') { if ($query_type === '' @@ -2581,8 +2570,8 @@ class ExportSql extends ExportPlugin if (!empty($GLOBALS['sql_backquotes'])) { $alias = PMA_Util::backquote($alias); } - $alias_len = $GLOBALS['PMA_String']->strlen($alias); - $data_len = $GLOBALS['PMA_String']->strlen($data); + $alias_len = /*overload*/mb_strlen($alias); + $data_len = /*overload*/mb_strlen($data); if (isset($offset)) { $offset += ($alias_len - $data_len); } diff --git a/libraries/plugins/export/ExportXml.class.php b/libraries/plugins/export/ExportXml.class.php index 527fd0627a..3c32af33d5 100644 --- a/libraries/plugins/export/ExportXml.class.php +++ b/libraries/plugins/export/ExportXml.class.php @@ -9,7 +9,7 @@ if (! defined('PHPMYADMIN')) { exit; } -if (!$GLOBALS['PMA_String']->strlen($GLOBALS['db'])) { /* Can't do server export */ +if (!/*overload*/mb_strlen($GLOBALS['db'])) { /* Can't do server export */ $GLOBALS['skip_import'] = true; return; } @@ -270,8 +270,7 @@ class ExportXml extends ExportPlugin . $trigger['name'] . '">' . $crlf; // Do some formatting - $code = $GLOBALS['PMA_String'] - ->substr(rtrim($code), 0, -3); + $code = /*overload*/mb_substr(rtrim($code), 0, -3); $code = " " . htmlspecialchars($code); $code = str_replace("\n", "\n ", $code); diff --git a/libraries/plugins/export/TableProperty.class.php b/libraries/plugins/export/TableProperty.class.php index 3ff5780058..1978b5926c 100644 --- a/libraries/plugins/export/TableProperty.class.php +++ b/libraries/plugins/export/TableProperty.class.php @@ -82,11 +82,9 @@ class TableProperty */ function getPureType() { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $pos = $pmaString->strpos($this->type, "("); + $pos = /*overload*/mb_strpos($this->type, "("); if ($pos > 0) { - return $pmaString->substr($this->type, 0, $pos); + return /*overload*/mb_substr($this->type, 0, $pos); } return $this->type; } @@ -118,30 +116,28 @@ class TableProperty */ function getDotNetPrimitiveType() { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strpos($this->type, "int") === 0) { + if (/*overload*/mb_strpos($this->type, "int") === 0) { return "int"; } - if ($pmaString->strpos($this->type, "longtext") === 0) { + if (/*overload*/mb_strpos($this->type, "longtext") === 0) { return "string"; } - if ($pmaString->strpos($this->type, "long") === 0) { + if (/*overload*/mb_strpos($this->type, "long") === 0) { return "long"; } - if ($pmaString->strpos($this->type, "char") === 0) { + if (/*overload*/mb_strpos($this->type, "char") === 0) { return "string"; } - if ($pmaString->strpos($this->type, "varchar") === 0) { + if (/*overload*/mb_strpos($this->type, "varchar") === 0) { return "string"; } - if ($pmaString->strpos($this->type, "text") === 0) { + if (/*overload*/mb_strpos($this->type, "text") === 0) { return "string"; } - if ($pmaString->strpos($this->type, "tinyint") === 0) { + if (/*overload*/mb_strpos($this->type, "tinyint") === 0) { return "bool"; } - if ($pmaString->strpos($this->type, "datetime") === 0) { + if (/*overload*/mb_strpos($this->type, "datetime") === 0) { return "DateTime"; } return "unknown"; @@ -154,30 +150,28 @@ class TableProperty */ function getDotNetObjectType() { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strpos($this->type, "int") === 0) { + if (/*overload*/mb_strpos($this->type, "int") === 0) { return "Int32"; } - if ($pmaString->strpos($this->type, "longtext") === 0) { + if (/*overload*/mb_strpos($this->type, "longtext") === 0) { return "String"; } - if ($pmaString->strpos($this->type, "long") === 0) { + if (/*overload*/mb_strpos($this->type, "long") === 0) { return "Long"; } - if ($pmaString->strpos($this->type, "char") === 0) { + if (/*overload*/mb_strpos($this->type, "char") === 0) { return "String"; } - if ($pmaString->strpos($this->type, "varchar") === 0) { + if (/*overload*/mb_strpos($this->type, "varchar") === 0) { return "String"; } - if ($pmaString->strpos($this->type, "text") === 0) { + if (/*overload*/mb_strpos($this->type, "text") === 0) { return "String"; } - if ($pmaString->strpos($this->type, "tinyint") === 0) { + if (/*overload*/mb_strpos($this->type, "tinyint") === 0) { return "Boolean"; } - if ($pmaString->strpos($this->type, "datetime") === 0) { + if (/*overload*/mb_strpos($this->type, "datetime") === 0) { return "DateTime"; } return "Unknown"; @@ -190,7 +184,7 @@ class TableProperty */ function getIndexName() { - if ($GLOBALS['PMA_String']->strlen($this->key) > 0) { + if (/*overload*/mb_strlen($this->key) > 0) { return "index=\"" . htmlspecialchars($this->name, ENT_COMPAT, 'UTF-8') . "\""; diff --git a/libraries/plugins/import/ImportCsv.class.php b/libraries/plugins/import/ImportCsv.class.php index fdab075e15..7f6554f34b 100644 --- a/libraries/plugins/import/ImportCsv.class.php +++ b/libraries/plugins/import/ImportCsv.class.php @@ -104,9 +104,6 @@ class ImportCsv extends AbstractImportCsv // but we use directly from $_POST global $error, $timeout_passed, $finished, $message; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $replacements = array( '\\n' => "\n", '\\t' => "\t", @@ -118,7 +115,7 @@ class ImportCsv extends AbstractImportCsv $csv_new_line = strtr($csv_new_line, $replacements); $param_error = false; - if ($pmaString->strlen($csv_terminated) < 1) { + if (/*overload*/mb_strlen($csv_terminated) < 1) { $message = PMA_Message::error( __('Invalid parameter for CSV import: %s') ); @@ -133,21 +130,21 @@ class ImportCsv extends AbstractImportCsv // confuses this script. // But the parser won't work correctly with strings so we allow just // one character. - } elseif ($pmaString->strlen($csv_enclosed) > 1) { + } elseif (/*overload*/mb_strlen($csv_enclosed) > 1) { $message = PMA_Message::error( __('Invalid parameter for CSV import: %s') ); $message->addParam(__('Columns enclosed with'), false); $error = true; $param_error = true; - } elseif ($pmaString->strlen($csv_escaped) != 1) { + } elseif (/*overload*/mb_strlen($csv_escaped) != 1) { $message = PMA_Message::error( __('Invalid parameter for CSV import: %s') ); $message->addParam(__('Columns escaped with'), false); $error = true; $param_error = true; - } elseif ($pmaString->strlen($csv_new_line) != 1 + } elseif (/*overload*/mb_strlen($csv_new_line) != 1 && $csv_new_line != 'auto' ) { $message = PMA_Message::error( @@ -238,7 +235,7 @@ class ImportCsv extends AbstractImportCsv $col_count = 0; $max_cols = 0; - $csv_terminated_len = $pmaString->strlen($csv_terminated); + $csv_terminated_len = /*overload*/mb_strlen($csv_terminated); while (! ($finished && $i >= $len) && ! $error && ! $timeout_passed) { $data = PMA_importGetNextChunk(); if ($data === false) { @@ -254,7 +251,7 @@ class ImportCsv extends AbstractImportCsv // Force a trailing new line at EOF to prevent parsing problems if ($finished && $buffer) { - $finalch = $pmaString->substr($buffer, -1); + $finalch = /*overload*/mb_substr($buffer, -1); if ($csv_new_line == 'auto' && $finalch != "\r" && $finalch != "\n" @@ -270,17 +267,17 @@ class ImportCsv extends AbstractImportCsv // Do not parse string when we're not at the end // and don't have new line inside if (($csv_new_line == 'auto' - && $pmaString->strpos($buffer, "\r") === false - && $pmaString->strpos($buffer, "\n") === false) + && /*overload*/mb_strpos($buffer, "\r") === false + && /*overload*/mb_strpos($buffer, "\n") === false) || ($csv_new_line != 'auto' - && $pmaString->strpos($buffer, $csv_new_line) === false) + && /*overload*/mb_strpos($buffer, $csv_new_line) === false) ) { continue; } } // Current length of our buffer - $len = $pmaString->strlen($buffer); + $len = /*overload*/mb_strlen($buffer); // Currently parsed char $ch = $buffer[$i]; if ($csv_terminated_len > 1 && $ch == $csv_terminated[0]) { @@ -544,8 +541,8 @@ class ImportCsv extends AbstractImportCsv $line++; $csv_finish = false; $values = array(); - $buffer = $pmaString->substr($buffer, $i + 1); - $len = $pmaString->strlen($buffer); + $buffer = /*overload*/mb_substr($buffer, $i + 1); + $len = /*overload*/mb_strlen($buffer); $i = 0; $lasti = -1; $ch = $buffer[0]; @@ -580,7 +577,7 @@ class ImportCsv extends AbstractImportCsv } } - if ($pmaString->strlen($db)) { + if (/*overload*/mb_strlen($db)) { $result = $GLOBALS['dbi']->fetchResult('SHOW TABLES'); $tbl_name = 'TABLE ' . (count($result) + 1); } else { diff --git a/libraries/plugins/import/ImportMediawiki.class.php b/libraries/plugins/import/ImportMediawiki.class.php index 3d4674f272..8716af581e 100644 --- a/libraries/plugins/import/ImportMediawiki.class.php +++ b/libraries/plugins/import/ImportMediawiki.class.php @@ -93,15 +93,12 @@ class ImportMediawiki extends ImportPlugin // Initialize the name of the current table $cur_table_name = ""; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - while (! $finished && ! $error && ! $timeout_passed ) { $data = PMA_importGetNextChunk(); if ($data === false) { // Subtract data we didn't handle yet and stop processing - $GLOBALS['offset'] -= $pmaString->strlen($buffer); + $GLOBALS['offset'] -= /*overload*/mb_strlen($buffer); break; } elseif ($data === true) { // Handle rest of buffer @@ -111,7 +108,7 @@ class ImportMediawiki extends ImportPlugin unset($data); // Don't parse string if we're not at the end // and don't have a new line inside - if ($pmaString->strpos($buffer, $mediawiki_new_line) === false ) { + if (/*overload*/mb_strpos($buffer, $mediawiki_new_line) === false ) { continue; } } @@ -145,12 +142,12 @@ class ImportMediawiki extends ImportPlugin $matches = array(); // Check beginning of comment - if (! strcmp($pmaString->substr($cur_buffer_line, 0, 4), "")) { + if (!strcmp(/*overload*/mb_substr($cur_buffer_line, 0, 4), "-->")) { // Only data comments are closed. The structure comments // will be closed when a data comment begins (in order to // skip structure tables) @@ -206,9 +203,9 @@ class ImportMediawiki extends ImportPlugin $in_table_header = false; // End processing because the current line does not // contain any column information - } elseif ($pmaString->substr($cur_buffer_line, 0, 2) === '|-' - || $pmaString->substr($cur_buffer_line, 0, 2) === '|+' - || $pmaString->substr($cur_buffer_line, 0, 2) === '|}' + } elseif (/*overload*/mb_substr($cur_buffer_line, 0, 2) === '|-' + || /*overload*/mb_substr($cur_buffer_line, 0, 2) === '|+' + || /*overload*/mb_substr($cur_buffer_line, 0, 2) === '|}' ) { // Check begin row or end table @@ -230,7 +227,7 @@ class ImportMediawiki extends ImportPlugin $cur_temp_line = array(); // No more processing required at the end of the table - if ($pmaString->substr($cur_buffer_line, 0, 2) === '|}') { + if (/*overload*/mb_substr($cur_buffer_line, 0, 2) === '|}') { $current_table = array( $cur_table_name, $cur_temp_table_headers, @@ -266,7 +263,7 @@ class ImportMediawiki extends ImportPlugin // A '|' inside an invalid link should not // be mistaken as delimiting cell parameters - if ($pmaString->strpos($cell_data[0], '[[') === true ) { + if (/*overload*/mb_strpos($cell_data[0], '[[') === true ) { if (count($cell_data) == 1) { $cell = $cell_data[0]; } else { @@ -278,8 +275,8 @@ class ImportMediawiki extends ImportPlugin $cell = trim($cell); $col_start_chars = array( "|", "!"); foreach ($col_start_chars as $col_start_char) { - if ($pmaString->strpos($cell, $col_start_char) === 0) { - $cell = trim($pmaString->substr($cell, 1)); + if (/*overload*/mb_strpos($cell, $col_start_char) === 0) { + $cell = trim(/*overload*/mb_substr($cell, 1)); } } diff --git a/libraries/plugins/import/ImportShp.class.php b/libraries/plugins/import/ImportShp.class.php index c4601decdd..e675747054 100644 --- a/libraries/plugins/import/ImportShp.class.php +++ b/libraries/plugins/import/ImportShp.class.php @@ -69,9 +69,6 @@ class ImportShp extends ImportPlugin global $db, $error, $finished, $compression, $import_file, $local_import_file, $message; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $GLOBALS['finished'] = false; $shp = new PMA_ShapeFile(1); @@ -110,8 +107,8 @@ class ImportShp extends ImportPlugin $temp_dbf_file = true; // Replace the .dbf with .*, as required // by the bsShapeFiles library. - $file_name = $pmaString->substr( - $dbf_file_path, 0, $pmaString->strlen($dbf_file_path) - 4 + $file_name = /*overload*/mb_substr( + $dbf_file_path, 0, /*overload*/mb_strlen($dbf_file_path) - 4 ) . '.*'; $shp->FileName = $file_name; } @@ -124,10 +121,10 @@ class ImportShp extends ImportPlugin // to load extra data. // Replace the .shp with .*, // so the bsShapeFiles library correctly locates .dbf file. - $file_name = $pmaString->substr( + $file_name = /*overload*/mb_substr( $import_file, 0, - $pmaString->strlen($import_file) - 4 + /*overload*/mb_strlen($import_file) - 4 ) . '.*'; $shp->FileName = $file_name; } @@ -261,7 +258,7 @@ class ImportShp extends ImportPlugin } // Set table name based on the number of tables - if ($pmaString->strlen($db)) { + if (/*overload*/mb_strlen($db)) { $result = $GLOBALS['dbi']->fetchResult('SHOW TABLES'); $table_name = 'TABLE ' . (count($result) + 1); } else { @@ -278,7 +275,7 @@ class ImportShp extends ImportPlugin $analyses[$table_no][FORMATTEDSQL][$spatial_col] = true; // Set database name to the currently selected one, if applicable - if ($pmaString->strlen($db)) { + if (/*overload*/mb_strlen($db)) { $db_name = $db; $options = array('create_db' => false); } else { diff --git a/libraries/plugins/import/ImportSql.class.php b/libraries/plugins/import/ImportSql.class.php index 02a30f94b6..39cf1dbe6e 100644 --- a/libraries/plugins/import/ImportSql.class.php +++ b/libraries/plugins/import/ImportSql.class.php @@ -111,9 +111,6 @@ class ImportSql extends ImportPlugin { global $error, $timeout_passed; - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $buffer = ''; // Defaults for parser $sql = ''; @@ -123,7 +120,7 @@ class ImportSql extends ImportPlugin $big_value = 2147483647; // include the space because it's mandatory $delimiter_keyword = 'DELIMITER '; - $length_of_delimiter_keyword = $pmaString->strlen($delimiter_keyword); + $length_of_delimiter_keyword = /*overload*/mb_strlen($delimiter_keyword); if (isset($_POST['sql_delimiter'])) { $sql_delimiter = $_POST['sql_delimiter']; @@ -162,7 +159,7 @@ class ImportSql extends ImportPlugin $data = PMA_importGetNextChunk(); if ($data === false) { // subtract data we didn't handle yet and stop processing - $GLOBALS['offset'] -= $pmaString->strlen($buffer); + $GLOBALS['offset'] -= /*overload*/mb_strlen($buffer); break; } elseif ($data === true) { // Handle rest of buffer @@ -173,7 +170,7 @@ class ImportSql extends ImportPlugin unset($data); // Do not parse string when we're not at the end // and don't have ; inside - if ($pmaString->strpos($buffer, $sql_delimiter, $posInQueryString) === false + if (/*overload*/mb_strpos($buffer, $sql_delimiter, $posInQueryString) === false && ! $GLOBALS['finished'] ) { continue; @@ -185,7 +182,7 @@ class ImportSql extends ImportPlugin $buffer = preg_replace("/\r($|[^\n])/", "\n$1", $buffer); // Current length of our buffer - $len = $pmaString->strlen($buffer); + $len = /*overload*/mb_strlen($buffer); // Grab some SQL queries out of it while ($posInQueryString < $len) { @@ -194,7 +191,7 @@ class ImportSql extends ImportPlugin $old_i = $posInQueryString; // this is about 7 times faster that looking for each sequence i // one by one with strpos() - $posPattern = $pmaString->pregStrpos( + $posPattern = /*overload*/mb_preg_strpos( '/(\'|"|#|-- |\/\*|`|(?i)(?strpos( + $first_sql_delimiter = /*overload*/mb_strpos( $buffer, $sql_delimiter, $posInQueryString @@ -238,21 +235,20 @@ class ImportSql extends ImportPlugin break; } // We hit end of query, go there! - $posInQueryString = $pmaString->strlen($buffer) - 1; + $posInQueryString = /*overload*/mb_strlen($buffer) - 1; } // Grab current character //$ch = $buffer[$i]; //Don't use this syntax, because of UTF8 strings - $ch = $pmaString->substr($buffer, $posInQueryString, 1); + $ch = /*overload*/mb_substr($buffer, $posInQueryString, 1); // Quotes - if ($pmaString->strpos('\'"`', $ch) !== false) { + if (/*overload*/mb_strpos('\'"`', $ch) !== false) { $quote = $ch; $endq = false; while (! $endq) { // Find next quote - $posQuote = $pmaString - ->strpos($buffer, $quote, $posInQueryString + 1); + $posQuote = /*overload*/mb_strpos($buffer, $quote, $posInQueryString + 1); /* * Behave same as MySQL and accept end of query as end * of backtick. @@ -278,7 +274,7 @@ class ImportSql extends ImportPlugin } // Was not the quote escaped? $posEscape = $posQuote - 1; - while ($pmaString->substr($buffer, $posEscape, 1) == '\\') { + while (/*overload*/mb_substr($buffer, $posEscape, 1) == '\\') { $posEscape--; } // Even count means it was not escaped @@ -305,9 +301,9 @@ class ImportSql extends ImportPlugin // Not enough data to decide if ((($posInQueryString == ($len - 1) && ($ch == '-' || $ch == '/')) || ($posInQueryString == ($len - 2) && (($ch == '-' - && $pmaString->substr($buffer, $posInQueryString + 1, 1) == '-') + && /*overload*/mb_substr($buffer, $posInQueryString + 1, 1) == '-') || ($ch == '/' - && $pmaString->substr($buffer, $posInQueryString + 1, 1) == '*')))) + && /*overload*/mb_substr($buffer, $posInQueryString + 1, 1) == '*')))) && ! $GLOBALS['finished'] ) { break; @@ -316,16 +312,16 @@ class ImportSql extends ImportPlugin // Comments if ($ch == '#' || ($posInQueryString < ($len - 1) && $ch == '-' - && $pmaString->substr($buffer, $posInQueryString + 1, 1) == '-' + && /*overload*/mb_substr($buffer, $posInQueryString + 1, 1) == '-' && (($posInQueryString < ($len - 2) - && $pmaString->substr($buffer, $posInQueryString + 2, 1) <= ' ') + && /*overload*/mb_substr($buffer, $posInQueryString + 2, 1) <= ' ') || ($posInQueryString == ($len - 1) && $GLOBALS['finished']))) || ($posInQueryString < ($len - 1) && $ch == '/' - && $pmaString->substr($buffer, $posInQueryString + 1, 1) == '*') + && /*overload*/mb_substr($buffer, $posInQueryString + 1, 1) == '*') ) { // Copy current string to SQL if ($start_pos != $posInQueryString) { - $sql .= $pmaString->substr( + $sql .= /*overload*/mb_substr( $buffer, $start_pos, $posInQueryString - $start_pos @@ -335,7 +331,7 @@ class ImportSql extends ImportPlugin $start_of_comment = $posInQueryString; // do not use PHP_EOL here instead of "\n", because the export // file might have been produced on a different system - $posInQueryString = $pmaString->strpos( + $posInQueryString = /*overload*/mb_strpos( $buffer, $ch == '/' ? '*/' : "\n", $posInQueryString @@ -356,7 +352,7 @@ class ImportSql extends ImportPlugin $posInQueryString++; // We need to send the comment part in case we are defining // a procedure or function and comments in it are valuable - $sql .= $pmaString->substr( + $sql .= /*overload*/mb_substr( $buffer, $start_of_comment, $posInQueryString - $start_of_comment @@ -373,13 +369,13 @@ class ImportSql extends ImportPlugin // Change delimiter, if redefined, and skip it // (don't send to server!) if (($posInQueryString + $length_of_delimiter_keyword < $len) - && $pmaString->strtoupper( - $pmaString->substr($buffer, $posInQueryString, $length_of_delimiter_keyword) + && /*overload*/mb_strtoupper( + /*overload*/mb_substr($buffer, $posInQueryString, $length_of_delimiter_keyword) ) == $delimiter_keyword ) { // look for EOL on the character immediately after 'DELIMITER ' // (see previous comment about PHP_EOL) - $new_line_pos = $pmaString->strpos( + $new_line_pos = /*overload*/mb_strpos( $buffer, "\n", $posInQueryString + $length_of_delimiter_keyword @@ -388,7 +384,7 @@ class ImportSql extends ImportPlugin if (false === $new_line_pos) { $new_line_pos = $len; } - $sql_delimiter = $pmaString->substr( + $sql_delimiter = /*overload*/mb_substr( $buffer, $posInQueryString + $length_of_delimiter_keyword, $new_line_pos - $posInQueryString - $length_of_delimiter_keyword @@ -411,7 +407,7 @@ class ImportSql extends ImportPlugin if (! $found_delimiter) { $length_to_grab++; } - $tmp_sql .= $pmaString->substr( + $tmp_sql .= /*overload*/mb_substr( $buffer, $start_pos, $length_to_grab @@ -423,27 +419,27 @@ class ImportSql extends ImportPlugin $sql = $tmp_sql; PMA_importRunQuery( $sql, - $pmaString->substr( + /*overload*/mb_substr( $buffer, 0, - $posInQueryString + $pmaString->strlen($sql_delimiter) + $posInQueryString + /*overload*/mb_strlen($sql_delimiter) ), false, $sql_data ); - $buffer = $pmaString->substr( + $buffer = /*overload*/mb_substr( $buffer, - $posInQueryString + $pmaString->strlen($sql_delimiter) + $posInQueryString + /*overload*/mb_strlen($sql_delimiter) ); // Reset parser: - $len = $pmaString->strlen($buffer); + $len = /*overload*/mb_strlen($buffer); $sql = ''; $posInQueryString = 0; $start_pos = 0; // Any chance we will get a complete query? //if ((strpos($buffer, ';') === false) //&& ! $GLOBALS['finished']) { - if ($pmaString->strpos($buffer, $sql_delimiter) === false + if (/*overload*/mb_strpos($buffer, $sql_delimiter) === false && ! $GLOBALS['finished'] ) { break; @@ -458,7 +454,7 @@ class ImportSql extends ImportPlugin // Commit any possible data in buffers PMA_importRunQuery( '', - $pmaString->substr($buffer, 0, $len), + /*overload*/mb_substr($buffer, 0, $len), false, $sql_data ); diff --git a/libraries/plugins/schema/dia/Dia_Relation_Schema.class.php b/libraries/plugins/schema/dia/Dia_Relation_Schema.class.php index 29358e6845..becce4f4f0 100644 --- a/libraries/plugins/schema/dia/Dia_Relation_Schema.class.php +++ b/libraries/plugins/schema/dia/Dia_Relation_Schema.class.php @@ -178,7 +178,7 @@ class PMA_DIA extends XMLWriter PMA_downloadHeader( $fileName . '.dia', 'application/x-dia-diagram', - $GLOBALS['PMA_String']->strlen($output) + /*overload*/mb_strlen($output) ); print $output; } diff --git a/libraries/plugins/schema/eps/Eps_Relation_Schema.class.php b/libraries/plugins/schema/eps/Eps_Relation_Schema.class.php index 0f42eb8310..5f5509ba43 100644 --- a/libraries/plugins/schema/eps/Eps_Relation_Schema.class.php +++ b/libraries/plugins/schema/eps/Eps_Relation_Schema.class.php @@ -297,7 +297,7 @@ class PMA_EPS PMA_downloadHeader( $fileName . '.eps', 'image/x-eps', - $GLOBALS['PMA_String']->strlen($output) + /*overload*/mb_strlen($output) ); print $output; } diff --git a/libraries/plugins/schema/pdf/Pdf_Relation_Schema.class.php b/libraries/plugins/schema/pdf/Pdf_Relation_Schema.class.php index dfba41beee..d033769533 100644 --- a/libraries/plugins/schema/pdf/Pdf_Relation_Schema.class.php +++ b/libraries/plugins/schema/pdf/Pdf_Relation_Schema.class.php @@ -345,16 +345,13 @@ class PMA_Schema_PDF extends PMA_PDF */ function NbLines($w, $txt) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $cw = &$this->CurrentFont['cw']; if ($w == 0) { $w = $this->w - $this->rMargin - $this->x; } $wmax = ($w-2 * $this->cMargin) * 1000 / $this->FontSize; $s = str_replace("\r", '', $txt); - $nb = $pmaString->strlen($s); + $nb = /*overload*/mb_strlen($s); if ($nb > 0 and $s[$nb-1] == "\n") { $nb--; } @@ -376,7 +373,7 @@ class PMA_Schema_PDF extends PMA_PDF if ($c == ' ') { $sep = $i; } - $l += isset($cw[$pmaString->ord($c)])?$cw[$pmaString->ord($c)]:0 ; + $l += isset($cw[/*overload*/mb_ord($c)])?$cw[/*overload*/mb_ord($c)]:0 ; if ($l > $wmax) { if ($sep == -1) { if ($i == $j) { diff --git a/libraries/plugins/schema/svg/Svg_Relation_Schema.class.php b/libraries/plugins/schema/svg/Svg_Relation_Schema.class.php index 1b8865bfa2..f2ae1f1bc6 100644 --- a/libraries/plugins/schema/svg/Svg_Relation_Schema.class.php +++ b/libraries/plugins/schema/svg/Svg_Relation_Schema.class.php @@ -190,7 +190,7 @@ class PMA_SVG extends XMLWriter PMA_downloadHeader( $fileName . '.svg', 'image/svg+xml', - $GLOBALS['PMA_String']->strlen($output) + /*overload*/mb_strlen($output) ); print $output; } diff --git a/libraries/plugins/transformations/abstract/DateFormatTransformationsPlugin.class.php b/libraries/plugins/transformations/abstract/DateFormatTransformationsPlugin.class.php index 719c6ff761..b18e38298a 100644 --- a/libraries/plugins/transformations/abstract/DateFormatTransformationsPlugin.class.php +++ b/libraries/plugins/transformations/abstract/DateFormatTransformationsPlugin.class.php @@ -58,13 +58,10 @@ abstract class DateFormatTransformationsPlugin extends TransformationsPlugin $options[0] = 0; } - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if (empty($options[2])) { $options[2] = 'local'; } else { - $options[2] = $pmaString->strtolower($options[2]); + $options[2] = /*overload*/mb_strtolower($options[2]); } if (empty($options[1])) { @@ -89,8 +86,8 @@ abstract class DateFormatTransformationsPlugin extends TransformationsPlugin // for example TIMESTAMP(8) means YYYYMMDD) } else if (preg_match('/^(\d{2}){3,7}$/', $buffer)) { - if ($pmaString->strlen($buffer) == 14 - || $pmaString->strlen($buffer) == 8 + if (/*overload*/mb_strlen($buffer) == 14 + || /*overload*/mb_strlen($buffer) == 8 ) { $offset = 4; } else { @@ -98,12 +95,12 @@ abstract class DateFormatTransformationsPlugin extends TransformationsPlugin } $aDate = array(); - $aDate['year'] = $pmaString->substr($buffer, 0, $offset); - $aDate['month'] = $pmaString->substr($buffer, $offset, 2); - $aDate['day'] = $pmaString->substr($buffer, $offset + 2, 2); - $aDate['hour'] = $pmaString->substr($buffer, $offset + 4, 2); - $aDate['minute'] = $pmaString->substr($buffer, $offset + 6, 2); - $aDate['second'] = $pmaString->substr($buffer, $offset + 8, 2); + $aDate['year'] = /*overload*/mb_substr($buffer, 0, $offset); + $aDate['month'] = /*overload*/mb_substr($buffer, $offset, 2); + $aDate['day'] = /*overload*/mb_substr($buffer, $offset + 2, 2); + $aDate['hour'] = /*overload*/mb_substr($buffer, $offset + 4, 2); + $aDate['minute'] = /*overload*/mb_substr($buffer, $offset + 6, 2); + $aDate['second'] = /*overload*/mb_substr($buffer, $offset + 8, 2); if (checkdate($aDate['month'], $aDate['day'], $aDate['year'])) { $timestamp = mktime( diff --git a/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php b/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php index 33a4f4ee17..05097fa6de 100644 --- a/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php +++ b/libraries/plugins/transformations/abstract/SubstringTransformationsPlugin.class.php @@ -52,18 +52,16 @@ abstract class SubstringTransformationsPlugin extends TransformationsPlugin // further operations on $buffer using the $options[] array. $options = $this->getOptions($options, array(0, 'all', '…')); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; if ($options[1] != 'all') { - $newtext = $pmaString->substr( + $newtext = /*overload*/mb_substr( $buffer, $options[0], $options[1] ); } else { - $newtext = $pmaString->substr($buffer, $options[0]); + $newtext = /*overload*/mb_substr($buffer, $options[0]); } - $length = $pmaString->strlen($newtext); - $baselength = $pmaString->strlen($buffer); + $length = /*overload*/mb_strlen($newtext); + $baselength = /*overload*/mb_strlen($buffer); if ($length != $baselength) { if ($options[0] != 0) { $newtext = $options[2] . $newtext; diff --git a/libraries/pmd_common.php b/libraries/pmd_common.php index 1257391d19..528e502772 100644 --- a/libraries/pmd_common.php +++ b/libraries/pmd_common.php @@ -55,7 +55,7 @@ function PMA_getTablesInfo() $one_table['TABLE_NAME'], ENT_QUOTES ); - $GLOBALS['PMD']['TABLE_TYPE'][$i] = $GLOBALS['PMA_String']->strtoupper( + $GLOBALS['PMD']['TABLE_TYPE'][$i] = /*overload*/mb_strtoupper( $one_table['ENGINE'] ); @@ -471,13 +471,10 @@ function PMA_saveDisplayField($db, $table, $field) */ function PMA_addNewRelation($db, $T1, $F1, $T2, $F2, $on_delete, $on_update) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $tables = $GLOBALS['dbi']->getTablesFull($db, $T1); - $type_T1 = $pmaString->strtoupper($tables[$T1]['ENGINE']); + $type_T1 = /*overload*/mb_strtoupper($tables[$T1]['ENGINE']); $tables = $GLOBALS['dbi']->getTablesFull($db, $T2); - $type_T2 = $pmaString->strtoupper($tables[$T2]['ENGINE']); + $type_T2 = /*overload*/mb_strtoupper($tables[$T2]['ENGINE']); // native foreign key if (PMA_Util::isForeignKeySupported($type_T1) @@ -581,16 +578,13 @@ function PMA_addNewRelation($db, $T1, $F1, $T2, $F2, $on_delete, $on_update) */ function PMA_removeRelation($T1, $F1, $T2, $F2) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - list($DB1, $T1) = explode(".", $T1); list($DB2, $T2) = explode(".", $T2); $tables = $GLOBALS['dbi']->getTablesFull($DB1, $T1); - $type_T1 = $pmaString->strtoupper($tables[$T1]['ENGINE']); + $type_T1 = /*overload*/mb_strtoupper($tables[$T1]['ENGINE']); $tables = $GLOBALS['dbi']->getTablesFull($DB2, $T2); - $type_T2 = $pmaString->strtoupper($tables[$T2]['ENGINE']); + $type_T2 = /*overload*/mb_strtoupper($tables[$T2]['ENGINE']); $try_to_delete_internal_relation = false; diff --git a/libraries/relation.lib.php b/libraries/relation.lib.php index 231784b585..f85440818a 100644 --- a/libraries/relation.lib.php +++ b/libraries/relation.lib.php @@ -659,7 +659,7 @@ function PMA_getForeigners($db, $table, $column = '', $source = 'both') . '.' . PMA_Util::backquote($cfgRelation['relation']) . ' WHERE `master_db` = \'' . PMA_Util::sqlAddSlashes($db) . '\' AND `master_table` = \'' . PMA_Util::sqlAddSlashes($table) . '\' '; - if ($pmaString->strlen($column)) { + if (/*overload*/mb_strlen($column)) { $rel_query .= ' AND `master_field` = ' . '\'' . PMA_Util::sqlAddSlashes($column) . '\''; } @@ -668,7 +668,7 @@ function PMA_getForeigners($db, $table, $column = '', $source = 'both') ); } - if (($source == 'both' || $source == 'foreign') && $pmaString->strlen($table)) { + if (($source == 'both' || $source == 'foreign') && /*overload*/mb_strlen($table)) { $showCreateTableQuery = 'SHOW CREATE TABLE ' . PMA_Util::backquote($db) . '.' . PMA_Util::backquote($table); @@ -683,9 +683,9 @@ function PMA_getForeigners($db, $table, $column = '', $source = 'both') /** * Emulating relations for some information_schema and data_dictionary tables */ - $isInformationSchema = $pmaString->strtolower($db) == 'information_schema'; + $isInformationSchema = /*overload*/mb_strtolower($db) == 'information_schema'; $is_data_dictionary = PMA_DRIZZLE - && $pmaString->strtolower($db) == 'data_dictionary'; + && /*overload*/mb_strtolower($db) == 'data_dictionary'; if (($isInformationSchema || $is_data_dictionary) && ($source == 'internal' || $source == 'both') ) { @@ -698,9 +698,9 @@ function PMA_getForeigners($db, $table, $column = '', $source = 'both') } if (isset($GLOBALS[$relations_key][$table])) { foreach ($GLOBALS[$relations_key][$table] as $field => $relations) { - if ((! $pmaString->strlen($column) || $column == $field) + if ((! /*overload*/mb_strlen($column) || $column == $field) && (! isset($foreign[$field]) - || ! $pmaString->strlen($foreign[$field])) + || ! /*overload*/mb_strlen($foreign[$field])) ) { $foreign[$field] = $relations; } @@ -883,7 +883,7 @@ function PMA_setDbComment($db, $comment = '') return false; } - if ($GLOBALS['PMA_String']->strlen($comment)) { + if (/*overload*/mb_strlen($comment)) { $upd_query = 'INSERT INTO ' . PMA_Util::backquote($cfgRelation['db']) . '.' . PMA_Util::backquote($cfgRelation['column_info']) @@ -928,7 +928,7 @@ function PMA_setHistory($db, $table, $username, $sqlquery) $maxCharactersInDisplayedSQL = $GLOBALS['cfg']['MaxCharactersInDisplayedSQL']; // Prevent to run this automatically on Footer class destroying in testsuite if (defined('TESTSUITE') - || $GLOBALS['PMA_String']->strlen($sqlquery) > $maxCharactersInDisplayedSQL + || /*overload*/mb_strlen($sqlquery) > $maxCharactersInDisplayedSQL ) { return; } @@ -1093,14 +1093,14 @@ function PMA_buildForeignDropdown($foreign, $data, $mode) } foreach ($foreign as $key => $value) { - if ($GLOBALS['PMA_String']->strlen($value) <= $GLOBALS['cfg']['LimitChars'] + if (/*overload*/mb_strlen($value) <= $GLOBALS['cfg']['LimitChars'] ) { $vtitle = ''; $value = htmlspecialchars($value); } else { $vtitle = htmlspecialchars($value); $value = htmlspecialchars( - $GLOBALS['PMA_String']->substr( + /*overload*/mb_substr( $value, 0, $GLOBALS['cfg']['LimitChars'] ) . '...' ); diff --git a/libraries/replication.inc.php b/libraries/replication.inc.php index 8b0c79934f..f4a1ec7e9e 100644 --- a/libraries/replication.inc.php +++ b/libraries/replication.inc.php @@ -204,11 +204,8 @@ function PMA_extractDbOrTable($string, $what = 'db') */ function PMA_Replication_Slave_control($action, $control = null, $link = null) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - - $action = $pmaString->strtoupper($action); - $control = $pmaString->strtoupper($control); + $action = /*overload*/mb_strtoupper($action); + $control = /*overload*/mb_strtoupper($control); if ($action != "START" && $action != "STOP") { return -1; diff --git a/libraries/replication_gui.lib.php b/libraries/replication_gui.lib.php index 030d2d023c..c4e8aa3538 100644 --- a/libraries/replication_gui.lib.php +++ b/libraries/replication_gui.lib.php @@ -675,11 +675,8 @@ function PMA_getHtmlForReplicationMasterAddSlaveuser() list($username_length, $hostname_length) = PMA_replicationGetUsernameHostnameLength(); - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - if (isset($_REQUEST['username']) - && $pmaString->strlen($_REQUEST['username']) === 0 + && /*overload*/mb_strlen($_REQUEST['username']) === 0 ) { $GLOBALS['pred_username'] = 'any'; } @@ -704,9 +701,9 @@ function PMA_getHtmlForReplicationMasterAddSlaveuser() $thishost = str_replace( "'", '', - $pmaString->substr( + /*overload*/mb_substr( $_current_user, - ($pmaString->strrpos($_current_user, '@') + 1) + (/*overload*/mb_strrpos($_current_user, '@') + 1) ) ); if ($thishost == 'localhost' || $thishost == '127.0.0.1') { @@ -728,7 +725,7 @@ function PMA_getHtmlForReplicationMasterAddSlaveuser() // when we start editing a user, $GLOBALS['pred_hostname'] is not defined if (! isset($GLOBALS['pred_hostname']) && isset($_REQUEST['hostname'])) { - switch ($pmaString->strtolower($_REQUEST['hostname'])) { + switch (/*overload*/mb_strtolower($_REQUEST['hostname'])) { case 'localhost': case '127.0.0.1': $GLOBALS['pred_hostname'] = 'localhost'; diff --git a/libraries/rte/rte_events.lib.php b/libraries/rte/rte_events.lib.php index 9c3f1694c0..df24626fe7 100644 --- a/libraries/rte/rte_events.lib.php +++ b/libraries/rte/rte_events.lib.php @@ -200,7 +200,7 @@ function PMA_EVN_handleEditor() $response->addJSON( 'name', htmlspecialchars( - $GLOBALS['PMA_String']->strtoupper($_REQUEST['item_name']) + /*overload*/mb_strtoupper($_REQUEST['item_name']) ) ); $response->addJSON('new_row', PMA_EVN_getRowForList($event)); @@ -419,7 +419,7 @@ function PMA_EVN_getEditorForm($mode, $operation, $item) } // Create the output $retval = ""; - $retval .= "\n\n"; + $retval .= "\n\n"; $retval .= "
\n"; $retval .= "\n"; $retval .= $original_data; @@ -554,7 +554,7 @@ function PMA_EVN_getEditorForm($mode, $operation, $item) $retval .= "\n"; } $retval .= "
\n\n"; - $retval .= "\n\n"; + $retval .= "\n\n"; return $retval; } // end PMA_EVN_getEditorForm() @@ -570,7 +570,7 @@ function PMA_EVN_getQueryFromRequest() $query = 'CREATE '; if (! empty($_REQUEST['item_definer'])) { - if ($GLOBALS['PMA_String']->strpos($_REQUEST['item_definer'], '@') !== false + if (/*overload*/mb_strpos($_REQUEST['item_definer'], '@') !== false ) { $arr = explode('@', $_REQUEST['item_definer']); $query .= 'DEFINER=' . PMA_Util::backquote($arr[0]); diff --git a/libraries/rte/rte_footer.lib.php b/libraries/rte/rte_footer.lib.php index 415f0164a5..7d95387267 100644 --- a/libraries/rte/rte_footer.lib.php +++ b/libraries/rte/rte_footer.lib.php @@ -25,14 +25,14 @@ function PMA_RTE_getFooterLinks($docu, $priv, $name) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - $icon = 'b_' . $pmaString->strtolower($name) . '_add.png'; + $icon = 'b_' . /*overload*/mb_strtolower($name) . '_add.png'; $retval = ""; $retval .= "\n"; $retval .= "
\n"; $retval .= "" . _pgettext('Create new procedure', 'New') . "\n"; $retval .= "
\n"; $retval .= " strtolower($name) . "s.php"; + $retval .= "href='db_" . /*overload*/mb_strtolower($name) . "s.php"; $retval .= "?$url_query&add_item=1' onclick='$.datepicker.initialized = false;'>"; $retval .= PMA_Util::getIcon($icon); $retval .= PMA_RTE_getWord('add') . "\n"; @@ -83,7 +83,7 @@ function PMA_EVN_getFooterLinks() 0, 1 ); - $es_state = $GLOBALS['PMA_String']->strtolower($es_state); + $es_state = /*overload*/mb_strtolower($es_state); $options = array( 0 => array( 'label' => __('OFF'), diff --git a/libraries/rte/rte_main.inc.php b/libraries/rte/rte_main.inc.php index 713f61dbcf..e6480dcc58 100644 --- a/libraries/rte/rte_main.inc.php +++ b/libraries/rte/rte_main.inc.php @@ -35,7 +35,7 @@ if ($GLOBALS['is_ajax_request'] != true) { * to manually select the required database and * create the missing $url_query variable */ - if ($GLOBALS['PMA_String']->strlen($db)) { + if (/*overload*/mb_strlen($db)) { $GLOBALS['dbi']->selectDb($db); if (! isset($url_query)) { $url_query = PMA_URL_getCommon($db, $table); diff --git a/libraries/rte/rte_routines.lib.php b/libraries/rte/rte_routines.lib.php index fc7601673b..9e56cd9d66 100644 --- a/libraries/rte/rte_routines.lib.php +++ b/libraries/rte/rte_routines.lib.php @@ -108,10 +108,10 @@ function PMA_RTN_parseOneParameter($value) $parsed_param = PMA_SQP_parse($value); $pos = 0; if (in_array( - $pmaString->strtoupper($parsed_param[$pos]['data']), + /*overload*/mb_strtoupper($parsed_param[$pos]['data']), $param_directions )) { - $retval[0] = $pmaString->strtoupper($parsed_param[0]['data']); + $retval[0] = /*overload*/mb_strtoupper($parsed_param[0]['data']); $pos++; } if ($parsed_param[$pos]['type'] == 'alpha_identifier' @@ -129,7 +129,7 @@ function PMA_RTN_parseOneParameter($value) if (($parsed_param[$i]['type'] == 'alpha_columnType' || $parsed_param[$i]['type'] == 'alpha_functionName') && $depth == 0 ) { - $retval[2] = $pmaString->strtoupper($parsed_param[$i]['data']); + $retval[2] = /*overload*/mb_strtoupper($parsed_param[$i]['data']); } else if ($parsed_param[$i]['type'] == 'punct_bracket_open_round' && $depth == 0 ) { @@ -141,18 +141,18 @@ function PMA_RTN_parseOneParameter($value) } else if ($depth == 1) { $param_length .= $parsed_param[$i]['data']; } else if ($parsed_param[$i]['type'] == 'alpha_reservedWord' - && $pmaString->strtoupper($parsed_param[$i]['data']) == 'CHARSET' + && /*overload*/mb_strtoupper($parsed_param[$i]['data']) == 'CHARSET' && $depth == 0 ) { if ($parsed_param[$i+1]['type'] == 'alpha_charset' || $parsed_param[$i+1]['type'] == 'alpha_identifier' ) { - $param_opts[] = $pmaString->strtolower($parsed_param[$i+1]['data']); + $param_opts[] = /*overload*/mb_strtolower($parsed_param[$i+1]['data']); } } else if ($parsed_param[$i]['type'] == 'alpha_columnAttrib' && $depth == 0 ) { - $param_opts[] = $pmaString->strtoupper($parsed_param[$i]['data']); + $param_opts[] = /*overload*/mb_strtoupper($parsed_param[$i]['data']); } } $retval[3] = $param_length; @@ -257,7 +257,7 @@ function PMA_RTN_parseRoutineDefiner($parsed_query) $fetching = true; } else if ($fetching == true && $parsed_query[$i]['type'] != 'quote_backtick' - && $pmaString->substr($parsed_query[$i]['type'], 0, 5) != 'punct' + && /*overload*/mb_substr($parsed_query[$i]['type'], 0, 5) != 'punct' ) { break; } else if ($fetching == true @@ -414,7 +414,7 @@ function PMA_RTN_handleEditor() $response->addJSON( 'name', htmlspecialchars( - $GLOBALS['PMA_String']->strtoupper($_REQUEST['item_name']) + /*overload*/mb_strtoupper($_REQUEST['item_name']) ) ); $response->addJSON('new_row', PMA_RTN_getRowForList($routine)); @@ -597,7 +597,7 @@ function PMA_RTN_getDataFromRequest() $retval['item_isdeterministic'] = ''; if (isset($_REQUEST['item_isdeterministic']) - && $pmaString->strtolower($_REQUEST['item_isdeterministic']) == 'on' + && /*overload*/mb_strtolower($_REQUEST['item_isdeterministic']) == 'on' ) { $retval['item_isdeterministic'] = " checked='checked'"; } @@ -688,7 +688,7 @@ function PMA_RTN_getDataFromName($name, $type, $all = true) if (! empty($routine['DTD_IDENTIFIER'])) { /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; - if ($pmaString->strlen($routine['DTD_IDENTIFIER']) > 63) { + if (/*overload*/mb_strlen($routine['DTD_IDENTIFIER']) > 63) { // If the DTD_IDENTIFIER string from INFORMATION_SCHEMA is // at least 64 characters, then it may actually have been // chopped because that column is a varchar(64), so we will @@ -698,7 +698,7 @@ function PMA_RTN_getDataFromName($name, $type, $all = true) $fetching = false; for ($i=0; $i<$parsed_query['len']; $i++) { if ($parsed_query[$i]['type'] == 'alpha_reservedWord' - && $pmaString->strtoupper($parsed_query[$i]['data']) == 'RETURNS' + && /*overload*/mb_strtoupper($parsed_query[$i]['data']) == 'RETURNS' ) { $fetching = true; } else if ($fetching == true @@ -710,7 +710,7 @@ function PMA_RTN_getDataFromName($name, $type, $all = true) // characters. We can safely assume that the return // datatype is either ENUM or SET, so we only look // for CHARSET. - $word = $pmaString->strtoupper($parsed_query[$i]['data']); + $word = /*overload*/mb_strtoupper($parsed_query[$i]['data']); if ($word == 'CHARSET' && ($parsed_query[$i+1]['type'] == 'alpha_charset' || $parsed_query[$i+1]['type'] == 'alpha_identifier') @@ -958,7 +958,7 @@ function PMA_RTN_getEditorForm($mode, $operation, $routine) // Create the output $retval = ""; - $retval .= "\n\n"; $retval .= "
\n"; $retval .= "\n"; @@ -1118,7 +1118,7 @@ function PMA_RTN_getEditorForm($mode, $operation, $routine) $retval .= "
"; } $retval .= ""; - $retval .= ""; + $retval .= ""; return $retval; } // end PMA_RTN_getEditorForm() @@ -1140,7 +1140,7 @@ function PMA_RTN_getQueryFromRequest() $query = 'CREATE '; if (! empty($_REQUEST['item_definer'])) { - if ($pmaString->strpos($_REQUEST['item_definer'], '@') !== false) { + if (/*overload*/mb_strpos($_REQUEST['item_definer'], '@') !== false) { $arr = explode('@', $_REQUEST['item_definer']); $query .= 'DEFINER=' . PMA_Util::backquote($arr[0]); $query .= '@' . PMA_Util::backquote($arr[1]) . ' '; @@ -1226,7 +1226,7 @@ function PMA_RTN_getQueryFromRequest() if (! empty($_REQUEST['item_param_opts_text'][$i])) { if ($PMA_Types->getTypeClass($item_param_type[$i]) == 'CHAR') { $params .= ' CHARSET ' - . $pmaString->strtolower( + . /*overload*/mb_strtolower( $_REQUEST['item_param_opts_text'][$i] ); } @@ -1234,7 +1234,7 @@ function PMA_RTN_getQueryFromRequest() if (! empty($_REQUEST['item_param_opts_num'][$i])) { if ($PMA_Types->getTypeClass($item_param_type[$i]) == 'NUMBER') { $params .= ' ' - . $pmaString->strtoupper( + . /*overload*/mb_strtoupper( $_REQUEST['item_param_opts_num'][$i] ); } @@ -1290,13 +1290,13 @@ function PMA_RTN_getQueryFromRequest() if (! empty($_REQUEST['item_returnopts_text'])) { if ($PMA_Types->getTypeClass($item_returntype) == 'CHAR') { $query .= ' CHARSET ' - . $pmaString->strtolower($_REQUEST['item_returnopts_text']); + . /*overload*/mb_strtolower($_REQUEST['item_returnopts_text']); } } if (! empty($_REQUEST['item_returnopts_num'])) { if ($PMA_Types->getTypeClass($item_returntype) == 'NUMBER') { $query .= ' ' - . $pmaString->strtoupper($_REQUEST['item_returnopts_num']); + . /*overload*/mb_strtoupper($_REQUEST['item_returnopts_num']); } } $query .= ' '; @@ -1657,14 +1657,14 @@ function PMA_RTN_getExecuteForm($routine) if (stristr($routine['item_param_type'][$i], 'enum') || stristr($routine['item_param_type'][$i], 'set') || in_array( - $pmaString->strtolower($routine['item_param_type'][$i]), + /*overload*/mb_strtolower($routine['item_param_type'][$i]), $no_support_types ) ) { $retval .= "--\n"; } else { $field = array( - 'True_Type' => $pmaString->strtolower( + 'True_Type' => /*overload*/mb_strtolower( $routine['item_param_type'][$i] ), 'Type' => '', @@ -1712,7 +1712,7 @@ function PMA_RTN_getExecuteForm($routine) } } } else if (in_array( - $pmaString->strtolower($routine['item_param_type'][$i]), + /*overload*/mb_strtolower($routine['item_param_type'][$i]), $no_support_types )) { $retval .= "\n"; diff --git a/libraries/rte/rte_triggers.lib.php b/libraries/rte/rte_triggers.lib.php index 64f402c365..71629bc4e5 100644 --- a/libraries/rte/rte_triggers.lib.php +++ b/libraries/rte/rte_triggers.lib.php @@ -178,7 +178,7 @@ function PMA_TRI_handleEditor() $response->addJSON( 'name', htmlspecialchars( - $GLOBALS['PMA_String']->strtoupper( + /*overload*/mb_strtoupper( $_REQUEST['item_name'] ) ) @@ -349,7 +349,7 @@ function PMA_TRI_getEditorForm($mode, $item) // Create the output $retval = ""; - $retval .= "\n\n"; + $retval .= "\n\n"; $retval .= "
\n"; $retval .= "\n"; $retval .= $original_data; @@ -432,7 +432,7 @@ function PMA_TRI_getEditorForm($mode, $item) $retval .= "\n"; } $retval .= "
\n\n"; - $retval .= "\n\n"; + $retval .= "\n\n"; return $retval; } // end PMA_TRI_getEditorForm() @@ -448,7 +448,7 @@ function PMA_TRI_getQueryFromRequest() $query = 'CREATE '; if (! empty($_REQUEST['item_definer'])) { - if ($GLOBALS['PMA_String']->strpos($_REQUEST['item_definer'], '@') !== false + if (/*overload*/mb_strpos($_REQUEST['item_definer'], '@') !== false ) { $arr = explode('@', $_REQUEST['item_definer']); $query .= 'DEFINER=' . PMA_Util::backquote($arr[0]); diff --git a/libraries/sanitizing.lib.php b/libraries/sanitizing.lib.php index 0b14de8ab4..59eeaf2558 100644 --- a/libraries/sanitizing.lib.php +++ b/libraries/sanitizing.lib.php @@ -32,7 +32,7 @@ function PMA_checkLink($url) /** @var PMA_String $pmaString */ $pmaString = $GLOBALS['PMA_String']; foreach ($valid_starts as $val) { - if ($pmaString->substr($url, 0, $pmaString->strlen($val)) == $val) { + if (/*overload*/mb_substr($url, 0, /*overload*/mb_strlen($val)) == $val) { return true; } } @@ -64,7 +64,7 @@ function PMA_replaceBBLink($found) } /* Construct url */ - if ($GLOBALS['PMA_String']->substr($found[1], 0, 4) == 'http') { + if (/*overload*/mb_substr($found[1], 0, 4) == 'http') { $url = PMA_linkURL($found[1]); } else { $url = $found[1]; diff --git a/libraries/select_lang.lib.php b/libraries/select_lang.lib.php index 23d6e0ff19..99508a5f69 100644 --- a/libraries/select_lang.lib.php +++ b/libraries/select_lang.lib.php @@ -18,11 +18,8 @@ if (! defined('PHPMYADMIN')) { */ function PMA_languageName($tmplang) { - /** @var PMA_String $pmaString */ - $pmaString = $GLOBALS['PMA_String']; - $lang_name = ucfirst( - $pmaString->substr($pmaString->strrchr($tmplang[0], '|'), 1) + /*overload*/mb_substr(/*overload*/mb_strrchr($tmplang[0], '|'), 1) ); // Include native name if non empty @@ -90,7 +87,7 @@ function PMA_langCheck() // prevent XSS $accepted_languages = PMA_getenv('HTTP_ACCEPT_LANGUAGE'); if ($accepted_languages - && false === $GLOBALS['PMA_String']->strpos($accepted_languages, '<') + && false === /*overload*/mb_strpos($accepted_languages, '<') ) { foreach (explode(',', $accepted_languages) as $lang) { if (PMA_langDetect($lang, 1)) { @@ -160,7 +157,7 @@ function PMA_langDetect($str, $envType) // $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable, // 2 for the 'HTTP_USER_AGENT' one $expr = $value[0]; - if ($GLOBALS['PMA_String']->strpos($expr, '[-_]') === false) { + if (/*overload*/mb_strpos($expr, '[-_]') === false) { $expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr); } $pattern1 = '/^(' . addcslashes($expr, '/') . ')(;q=[0-9]\\.[0-9])?$/i'; diff --git a/libraries/server_databases.lib.php b/libraries/server_databases.lib.php index ca25d000c2..8f5c7ca19e 100644 --- a/libraries/server_databases.lib.php +++ b/libraries/server_databases.lib.php @@ -439,7 +439,7 @@ function PMA_getListForSortDatabase() } if (isset($_REQUEST['sort_order']) - && $GLOBALS['PMA_String']->strtolower($_REQUEST['sort_order']) == 'desc' + && /*overload*/mb_strtolower($_REQUEST['sort_order']) == 'desc' ) { $sort_order = 'desc'; } else { diff --git a/libraries/server_plugins.lib.php b/libraries/server_plugins.lib.php index 7661b9ee27..7c978f6c3c 100644 --- a/libraries/server_plugins.lib.php +++ b/libraries/server_plugins.lib.php @@ -49,12 +49,9 @@ function PMA_getPluginTab($plugins) $html = '
'; $html .= '