Показать сообщение отдельно
  #5 (permalink)  
Старый 06.09.2011, 11:52
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function unescape( $str, $charset = "UTF-8" ) {
	$str = rawurldecode($str );
	preg_match_all("/(?:%u.{4})|&#x.{4};|&#\d+;|.+/U", $str, $r );
	$ar = $r[0];

	foreach( $ar as $k => $v ) {
		if ( substr($v, 0, 2) == "%u" ) {
			$ar[$k] = iconv("UCS-2", $charset, pack("H4", substr($v, -4)));
		} elseif ( substr($v, 0, 3) == "&#x" ) {
			$ar[$k] = iconv("UCS-2", $charset, pack("H4", substr($v, 3, -1)));
		} elseif ( substr($v, 0, 2) == "&#" ) {
			$ar[$k] = iconv("UCS-2", $charset, pack("n", substr($v, 2, -1)));
		}
	}
	return implode( "", $ar );
}
Ответить с цитированием