3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?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();
based on QJdBH
Output for 5.5.24 - 7.1.0
before strip :UTF-8 for Häslïchëräëÿüïöáéüúíóßñµç.,_-;()''"" <br />after strip :UTF-8 for H?sl?ch?r????????????????.,_- <br />
Output for 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/EXQtl on line 42 after strip :ASCII for <br />
Output for 4.4.2 - 4.4.9, 5.1.3 - 5.3.29
Parse error: syntax error, unexpected '[' in /in/EXQtl on line 12
Process exited with code 255.
Output for 5.1.0 - 5.1.2
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 4 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 5 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 6 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 7 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 8 Parse error: syntax error, unexpected '[' in /in/EXQtl on line 12
Process exited with code 255.
Output for 5.0.0 - 5.0.5
Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 4 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 5 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 6 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 7 Strict Standards: var: Deprecated. Please use the public/private/protected modifiers in /in/EXQtl on line 8 Parse error: parse error, unexpected '[' in /in/EXQtl on line 12
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected '[' in /in/EXQtl on line 12
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error in /in/EXQtl on line 12
Process exited with code 255.