htmlspecialchars
3 отговора
200 прегледа
htmlspecialchars
Здравейте
Когато използвам htmlspecialchars как да му разреша да интрепретира кирилицата. Защото в случай на български не се визуализира
Когато използвам htmlspecialchars как да му разреша да интрепретира кирилицата. Защото в случай на български не се визуализира
Re: htmlspecialchars
Bi mogul da si napishesh sobstwen htmlspecialchars()
naprimer
function MyHtmlspecialchars($string)
{
$string = str_replace("<","<",$string);
$string = str_replace(">",">",$string);
$string = str_replace("\"",""",$string);
..........
return $string;
}
taka mojesh da si escape-wash kwot si iskash
P.S. na mestoto na tochkite slagash amnalogichni redowe za ostanalite simwoli koito te pritesnjawat
naprimer
function MyHtmlspecialchars($string)
{
$string = str_replace("<","<",$string);
$string = str_replace(">",">",$string);
$string = str_replace("\"",""",$string);
..........
return $string;
}
taka mojesh da si escape-wash kwot si iskash
P.S. na mestoto na tochkite slagash amnalogichni redowe za ostanalite simwoli koito te pritesnjawat
Редактирано от NastyBUFF на
Re: htmlspecialchars
Ами аз си мисля че можеш да ползваш и това
(в случай че те мързи да пишеш всеки символ по отделно)
При всички положения това което Бъф ти писа е решение.
(в случай че те мързи да пишеш всеки символ по отделно)
При всички положения това което Бъф ти писа е решение.
<?
$foo = "<font color=#ffff00>Кирилица</font>";
function MyLazyHtmlStripper($foo)
{
for ($i=0; $i<strlen($foo); $i++) {
$char_val = ord($foo[$i]);
if ($char_val > 192 and $char_val < 255 ){
$ret_str .= $foo[$i];
} else {
$ret_str .= htmlspecialchars($foo[$i]);
}
}
return $ret_str;
}
?>
Една корекция
Ами тъй като писах предищния си постинг както обикновенно за 5 мин се замислих днес,че съм допуснал грешка.
Значи кирилишките символи се намират в интервала (191,256) т.е това което съм написал по горе
if ($char_val > 192 and $char_val < 255 ){
да се чете
if ($char_val > 191 and $char_val < 256 ){
Този бъг обаче ми показа че голямо А и малко я минават през htmlspecialchars(), което от своя страна,заедно с мнението ти че кирилицата изчезва, води до извода че проблема ти е някъде другаде. Мисля че трябва да търсиш някакво решение с помощта на
string convert_cyr_string (string str, string from, string to)
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
Така или иначе успех :)
bofh
Значи кирилишките символи се намират в интервала (191,256) т.е това което съм написал по горе
if ($char_val > 192 and $char_val < 255 ){
да се чете
if ($char_val > 191 and $char_val < 256 ){
Този бъг обаче ми показа че голямо А и малко я минават през htmlspecialchars(), което от своя страна,заедно с мнението ти че кирилицата изчезва, води до извода че проблема ти е някъде другаде. Мисля че трябва да търсиш някакво решение с помощта на
string convert_cyr_string (string str, string from, string to)
k - koi8-r
w - windows-1251
i - iso8859-5
a - x-cp866
d - x-cp866
m - x-mac-cyrillic
Така или иначе успех :)
bofh