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"; }
Output for git.master_jit, git.master
Zero Width Space int(1) bool(false) int(0) Zero Width Non-Joiner int(1) bool(false) int(0) Zero Width Joiner int(1) bool(false) int(0) Zero Width No-Break Space int(1) bool(false) int(0)

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
32.59 ms | 405 KiB | 5 Q