index
:
drakx
distro/mdv2007.1
distro/mdv2008.0
distro/mdv2008.1
distro/mdv2009.0
distro/mdv2009.1
distro/mdv2010.0
distro/mes5
distro/mes5-2.6.33
distro/mes6
distro/mga1
distro/mga2
distro/mga3
distro/mga4
distro/mga5
distro/mga6
distro/mga7
distro/mga8
distro/mga9
master
topic/Corpo_2_1
topic/KA9_0
topic/MDK-10-update
topic/MDK-10_1-update
topic/MDK-10_2-update
topic/MDK-2006_0-update
topic/MDK92-branch
topic/MDKC_1_0
topic/PCMCIA_CS_DISTRO
topic/R9_0-64bit-branch
topic/R9_1_HP-branch
topic/a
topic/before_matchbox_wm
topic/bug-13680
topic/dietlibc
topic/efi
topic/extlinux
topic/firewall
topic/gdk-pixbuf-0-branch
topic/gi-ppc
topic/ia64-8_1
topic/mandrakesoft
topic/mlcd4
topic/ppp
topic/rp-pppoe
topic/switching_to_dnf
topic/switching_to_urpmi
topic/unlabeled-1.1.1
topic/v_webmin_0_87
topic/x86_64-branch
user/animtim/designWork
user/bcornec/fixntp
user/colin/rescue-systemd
user/ennael/mga6
user/erwan/bug-13680
user/jibz/aarch64
user/martinw/mga6
user/pterjan/arm64
Mageia Installer and base platform for many utilities
Thierry Vignaud [tv]
summary
refs
log
tree
commit
diff
stats
log msg
author
committer
range
path:
root
/
perl-install
/
standalone
/
polkit
/
org.mageia.drakscanner.policy.in
diff options
context:
1
2
3
4
5
6
7
8
9
10
15
20
25
30
35
40
space:
include<?php
//
// This file provides some useful functions for debugging the unicode/UTF-8 library
// It requires utf_tools.php to be loaded
//
die
(
"Please read the first lines of this script for instructions on how to enable it"
);
if
(!
headers_sent
())
{
header
(
'Content-type: text/html; charset=UTF-8'
);
}
/**
* Converts unicode escape sequences (\u0123) into UTF-8 characters
*
* @param string A unicode sequence
* @return string UTF-8 representation of the given unicode sequence
*/
function
unicode_to_utf8
(
$string
)
{
$utf8
=
''
;
$chars
=
array
();
for
(
$i
=
0
;
$i
<
strlen
(
$string
);
$i
++
)
{
if
(
isset
(
$string
[
$i
+
5
]) &&
substr
(
$string
,
$i
,
2
) ==
'
\\
u'
&&
ctype_xdigit
(
substr
(
$string
,
$i
+
2
,
4
)))
{
$utf8
.=
utf8_from_unicode
(
array
(
base_convert
(
substr
(
$string
,
$i
+
2
,
4
),
16
,
10
)));
$i
+
=
5
;
}
else
{
$utf8
.=
$string
[
$i
];
}
}
return
$utf8
;
}
/**
* Takes an array of ints representing the Unicode characters and returns
* a UTF-8 string.
*
* @param array $array array of unicode code points representing a string
* @return string UTF-8 character string
*/
function
utf8_from_unicode
(
$array
)
{
$str
=
''
;
foreach
(
$array
as
$value
)
{
$str
.=
utf8_chr
(
$value
);
}
return
$str
;
}
/**
* Converts a UTF-8 string to unicode code points
*
* @param string $text UTF-8 string
* @return string Unicode code points
*/
function
utf8_to_unicode
(
$text
)
{
return
preg_replace_callback
(
'#[
\\
xC2-
\\
xF4][
\\
x80-
\\
xBF]?[
\\
x80-
\\
xBF]?[
\\
x80-
\\
xBF]#'
,
'utf8_to_unicode_callback'
,
preg_replace_callback
(
'#[
\\
x00-
\\
x7f]#'
,
'utf8_to_unicode_callback'
,
$text
)
);
}
/**
* Takes a UTF-8 char and replaces it with its unicode escape sequence. Attention, $m is an array
*
* @param array $m 0-based numerically indexed array passed by preg_replace_callback()
* @return string A unicode escape sequence
*/
function
utf8_to_unicode_callback
(
$m
)
{
return
'\u'
.
str_pad
(
base_convert
(
utf8_ord
(
$m
[
0
]),
10
,
16
),
4
,
'0'
,
STR_PAD_LEFT
) .
''
;
}
/**
* A wrapper function for the normalizer which takes care of including the class if required and modifies the passed strings
* to be in NFKC
*
* @param mixed $strings a string or an array of strings to normalize
* @return mixed the normalized content, preserving array keys if array given.
*/
function
utf8_normalize_nfkc
(
$strings
)
{
if
(
empty
(
$strings
))
{
return
$strings
;
}
if
(!
class_exists
(
'utf_normalizer'
))
{
global
$phpbb_root_path
,
$phpEx
;
include
(
$phpbb_root_path
.
'includes/utf/utf_normalizer.'
.
$phpEx
);
}
if
(!
is_array
(
$strings
))
{
utf_normalizer
::
nfkc
(
$strings
);
}
else if
(
is_array
(
$strings
))
{
foreach
(
$strings
as
$key
=>
$string
)
{
utf_normalizer
::
nfkc
(
$strings
[
$key
]);
}
}
return
$strings
;
}
?
>