3v4l.org

run code in 300+ PHP versions simultaneously
<?php $values = [ "Zero Width Space" => "MaxMustermann", "Zero Width Space" => "Max\u{200B}Mustermann", "Zero Width Non-Joiner" => "Max\u{200C}Mustermann", "Zero Width Joiner" => "Max\u{200D}Mustermann", "Zero Width No-Break Space" => "Max\u{FEFF}Mustermann", ]; $checker = new \Spoofchecker(); $checks = \Spoofchecker::INVISIBLE | \Spoofchecker::MIXED_NUMBERS | \Spoofchecker::HIDDEN_OVERLAY; $checks |= \Spoofchecker::SINGLE_SCRIPT; $checker->setRestrictionLevel(\Spoofchecker::MODERATELY_RESTRICTIVE); $checker->setAllowedLocales('de,fr,it'); $checker->setChecks($checks); foreach ($values as $check => $value) { echo $check."\n"; var_dump(preg_match('/[\x{200B}\x{200C}\x{200D}\x{FEFF}\x{2060}\x{2061}\x{2062}\x{2063}\x{2064}]/u', $value)); var_dump($checker->isSuspicious($value, $errorCode)); var_dump($errorCode); echo "\n"; }

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)
8.5.30.0090.00818.02
8.5.20.0080.01020.15
8.5.10.0060.00316.82
8.5.00.0110.01725.96
8.4.180.0150.01523.07
8.4.170.0160.01328.75
8.4.160.0200.01426.43
8.4.150.0280.00918.37
8.4.140.0540.02519.11
8.4.130.0140.01721.06
8.4.90.0140.01621.39
8.3.300.0110.01824.24
8.3.290.0140.01323.85
8.3.280.0130.01421.75
8.3.270.0120.01720.23
8.3.260.0140.01518.46
8.3.180.0110.01720.23
8.3.50.0140.01620.51
8.2.300.0110.01021.59
8.1.340.0070.01421.05

preferences:
44.76 ms | 403 KiB | 5 Q