<?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();
preferences:
35.25 ms | 402 KiB | 5 Q