3v4l.org

run code in 300+ PHP versions simultaneously
<?php class StringNormalizer { public function transliterate($inputString) { return String::transliterate(trim($inputString)); } public function toLowerTransliterate($inputString) { return strtolower($this->transliterate($inputString)); } public function transliterateArray(array $inputs) { $result = array(); foreach ($inputs as $input) { $transiteratedInput = $this->transliterate($input); $result[strtolower($transiteratedInput)] = $transiteratedInput; } return $result; } public function transliterateKeyArray(array $inputs) { $result = array(); foreach ($inputs as $key => $input) { $result[$this->toLowerTransliterate($key)] = $input; } return $result; } } class String { const IN_CHARSET = 'UTF-8'; const OUT_CHARSET = 'ASCII//TRANSLIT'; const ALLOWED_CHARACTERS_FILTER = '/[^0-9a-zA-Z_\. \(\)\-]+/'; const DEFAULT_PREFIX = 'export_'; public static function transliterate($inputString) { return $outputString = preg_replace(self::ALLOWED_CHARACTERS_FILTER, '', iconv(self::IN_CHARSET, self::OUT_CHARSET, $inputString)); } private function __construct() { } } $strings = array( ' aąbcćdeęfghijklłmnńoóprsśtuwyzźżAĄBCĆDEĘFGHIJKLŁMNŃOÓPRSŚTUWYZŹŻ ', ' aäbcdefghijklmnoöpqrsẞtuüvwxyzAÄBCDEFGHIJKLMNOÖPQRSßTUÜVWXYZ ', ' _. ()-\\/ ' ); $sut = new StringNormalizer(); $results = array(); foreach ($strings as $string) { $results[] = $sut->transliterate($string); } var_dump($results) ;

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
7.0.20.0300.07320.24
7.0.10.0070.04320.09
7.0.00.0130.08020.08
5.6.280.0030.05721.26
5.6.200.0100.03718.34
5.6.190.0170.06320.71
5.6.180.0170.04720.49
5.6.170.0230.09020.61
5.6.160.0100.08320.73
5.6.150.0100.03718.34
5.6.140.0100.07018.27
5.6.130.0100.04318.42
5.6.120.0170.07721.23
5.6.110.0070.07721.18
5.6.100.0070.07721.12
5.6.90.0030.08721.18
5.6.80.0030.04020.68
5.5.340.0070.08318.19
5.5.330.0170.04720.45
5.5.320.0370.06720.43
5.5.310.0270.07720.45
5.5.300.0130.07718.13
5.5.290.0000.05318.23
5.5.280.0130.06321.04
5.5.270.0030.09320.98
5.5.260.0130.07020.82
5.5.250.0100.03720.72
5.5.240.0200.08020.50

preferences:
133.6 ms | 1398 KiB | 7 Q