3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Stripper{ var $regex; var $stripped; var $decoded; var $current_encoding; var $result; function __construct(){ mb_internal_encoding('UTF-8'); //mb_regex_encoding("UTF-8"); setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu'); } private function to_utf8( $string ) { // From http://w3.org/International/questions/qa-forms-utf-8.html if ( preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string) ) { return $string; } else { return iconv( 'CP1252', 'UTF-8', $string); } } function convert($string, $targetEncoding = 'UTF-8'){ $current_encoding = mb_detect_encoding($string); if($current_encoding != $targetEncoding){ $string = mb_convert_encoding($string, $targetEncoding, mb_detect_encoding($string)); } $result = $string; return $result; } //this function returns characters, whitespace, underscores and linebreaks plus @ , and - function strip($string){ //$this->convert($string); $result = mb_ereg_replace("[^[:word:][:alnum:][:blank:][:space:]@,\-\.]*", "", $string); return $result; } //this function returns $digits of number and discards everything else function onlyNumbers($string, $digits=0){ //$this->convert($string); $result = mb_ereg_replace("[^\d]*", "", $string); if($digits > 0){ $result = substr($result, 0, $digits); } return $result; } function decode($string, $type="all"){ //$this->convert($string); if($type == "all" || $type == "strip"){ $string = stripslashes($string); } if ($type == "all" || $type == "decode"){ $string = urldecode($string); } $result = $string; return $result; } } //mb_detect_order ( mb_internal_encoding('UTF-8'); mb_http_output('UTF-8'); mb_http_input('UTF-8'); mb_language('uni'); mb_regex_encoding('UTF-8'); ob_start('mb_output_handler'); //var_dump(mb_regex_encoding()); //var_dump( mb_get_info()); $value = "Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''\"\" "; //$value = $stripper->decode($value); //$value = $stripper->convert($value); echo "before strip :" . mb_detect_encoding($value) . " for $value<br />"; //$_POST[$key] = $purifier->purify($_POST[$key]); //$value = str_replace("ß","ss",$value); $stripper = new Stripper(); $value = $stripper->strip($value); echo "after strip :". mb_detect_encoding($value) . " for $value<br />"; //phpinfo();
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
Fatal error: Uncaught ValueError: mb_http_input(): Argument #1 ($type) must be one of "G", "P", "C", "S", "I", or "L" in /in/nrnvp:71 Stack trace: #0 /in/nrnvp(71): mb_http_input('UTF-8') #1 {main} thrown in /in/nrnvp on line 71
Process exited with code 255.
Output for 5.5.2 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33
before strip :UTF-8 for Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''"" <br />after strip :UTF-8 for H?sl?ch?r????????????????.,_- <br />
Output for 5.5.0 - 5.5.1
before strip :UTF-8 for Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''"" <br />after strip :UTF-8 for H?sl?ch?r????????.,_- <br />
Output for 5.1.3 - 5.1.6, 5.2.0 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.45
before strip :UTF-8 for Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''"" <br /> Warning: mb_ereg_replace(): mbregex compile err: invalid POSIX bracket type in /in/nrnvp on line 42 after strip :ASCII for <br />
Output for 5.0.0 - 5.0.5, 5.1.1 - 5.1.2
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 4 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 5 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 6 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 7 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 8 before strip :UTF-8 for Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''"" <br /> Warning: mb_ereg_replace(): mbregex compile err: invalid POSIX bracket type in /in/nrnvp on line 42 after strip :ASCII for <br />
Output for 5.1.0
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 4 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 5 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 6 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 7 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/nrnvp on line 8 Fatal error: fatal flex scanner internal error--end of buffer missed in /in/nrnvp on line 91
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/nrnvp on line 14
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /in/nrnvp on line 14
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in /in/nrnvp on line 14
Process exited with code 255.

preferences:
340.96 ms | 401 KiB | 463 Q