Skip to content

Instantly share code, notes, and snippets.

@divinity76
Created October 27, 2013 23:39
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save divinity76/7189255 to your computer and use it in GitHub Desktop.
Save divinity76/7189255 to your computer and use it in GitHub Desktop.
PHP css_escape_string
//CSS escape code ripped from Zend Framework ( https://github.com/zendframework/zf2/blob/master/library/Zend/Escaper/Escaper.php )
function css_escape_string($string)
{
$cssMatcher=function($matches)
{
$chr = $matches[0];
if (strlen($chr) == 1) {
$ord = ord($chr);
} else {
$chr = mb_convert_encoding($chr,'UTF-16BE','UTF-8');//$this->convertEncoding($chr, 'UTF-16BE', 'UTF-8');
$ord = hexdec(bin2hex($chr));
}
return sprintf('\\%X ', $ord);
};
$originalEncoding=mb_detect_encoding($string);
if($originalEncoding===false){$originalEncoding='UTF-8';};
$string = mb_convert_encoding($string,'UTF-8',$originalEncoding);//$this->toUtf8($string);
// throw new Exception('mb_convert_encoding(\''.$string.'\',\'UTF-8\',\''.$originalEncoding.'\');');
if ($string === '' || ctype_digit($string)) {
return $string;
}
$result = preg_replace_callback('/[^a-z0-9]/iSu', /*$this->*/$cssMatcher, $string);
//var_dump($result);
return mb_convert_encoding($result,$originalEncoding,'UTF-8');//$this->fromUtf8($result);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment