function
htmlencode(
$string
) {
if
(
is_array
(
$string
)) {
foreach
(
$string
as
$key
=>
$val
) {
$string
[
$key
] = htmlencode(
$val
);
}
}
else
{
$string
= preg_replace('/&((#(\d{3,5}|x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace
(
array
('&', '"', '
$length
)) {
$wordscut
= '';
if
(
strtolower
(
$charset
) == 'utf-8') {
$n
= 0;
$tn
= 0;
$noc
= 0;
while
(
$n
<
strlen
(
$string
)) {
$t
= ord(
$string
[
$n
]);
if
(
$t
== 9 ||
$t
== 10 || (32 <=
$t
&&
$t
<= 126)) {
$tn
= 1;
$n
++;
$noc
++;
}
elseif
(194 <=
$t
&&
$t
<= 223) {
$tn
= 2;
$n
+= 2;
$noc
+= 2;
}
elseif
(224 <=
$t
&&
$t
< 239) {
$tn
= 3;
$n
+= 3;
$noc
+= 2;
}
elseif
(240 <=
$t
&&
$t
<= 247) {
$tn
= 4;
$n
+= 4;
$noc
+= 2;
}
elseif
(248 <=
$t
&&
$t
=
$length
) {
break
;
}
}
if
(
$noc
>
$length
) {
$n
-=
$tn
;
}
$wordscut
=
substr
(
$string
, 0,
$n
);
}
else
{
for
(
$i
= 0;
$i
<
$length
- 1;
$i
++) {
if
(ord(
$string
[
$i
]) > 127) {
$wordscut
.=
$string
[
$i
].
$string
[
$i
+ 1];
$i
++;
}
else
{
$wordscut
.=
$string
[
$i
];
}
}
}
$wordscut
.=
$dot
;
$string
=
$wordscut
;
}
return
htmlencode(
$string
);
}