array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.mb-decode-numericentity.php', 1 => 'mb_decode_numericentity', ), 'up' => array ( 0 => 'ref.mbstring.php', 1 => 'Çok baytlı Dizge İşlevleri', ), 'prev' => array ( 0 => 'function.mb-decode-mimeheader.php', 1 => 'mb_decode_mimeheader', ), 'next' => array ( 0 => 'function.mb-detect-encoding.php', 1 => 'mb_detect_encoding', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/mbstring/functions/mb-decode-numericentity.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_decode_numericentity — HTML sayısal karakter gösterimini karaktere dönüştürür
$dizge
,$bölge
,$kodlama
= null
,$onaltılık
= false
Belirtilen dizge
dizgesindeki karakter kodlarından
belirtilen bölge
içinde kalan karakterlerin yerine
HTML sayısal karakter gösterimlerini yerleştirir.
dizge
HTML karakter kodlaması kaldırılacak dizge.
bölge
Dönüşüm yapılacak kod bölgesini içeren dizi.
kodlama
kodlama
bağımsız değişkeninde karakter kodlaması belirtilir. Belirtilmediği takdirde veya
null
ise dahili karakter
kodlaması kullanılır.
onaltılık
true
ise sayısal gösterim onaltılık olur, değilse onluk olur.
Dönüştürülen dizge.
Sürüm: | Açıklama |
---|---|
8.0.0 | kodlama artık null
olabiliyor. |
Örnek 1 - bölge
örneği
<?php
$bölge = array (
int kodlama_başı1, int kodlama_sonu1, int göreli_konum1, int maske1,
int kodlama_başı2, int kodlama_sonu2, int göreli_konum2, int maske2,
........
int kodlama_başıN, int kodlama_sonuN, int göreli_konumN, int maskeN );
// kodlama_başıN ve int kodlama_sonuN için Evrenkodlu değer belirt,
// değere göreli_konumN ekleyip sonucu maskeN ile bitsel VE'le ve
// değeri sayısal gösterim dizgesine dönüştür.
?>
Örnek 2 - JavaScript dizgeyi önceleyen map
örneği
<?php
function escape_javascript_string($str) {
$map = [
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,0,0, // 49
0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,0,0,0, // 99
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 149
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 199
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1, // 249
1,1,1,1,1,1,1, // 255
];
// Kodlama: UTF-8
$mblen = mb_strlen($str, 'UTF-8');
$utf32 = bin2hex(mb_convert_encoding($str, 'UTF-32', 'UTF-8'));
for ($i=0, $encoded=''; $i < $mblen; $i++) {
$u = substr($utf32, $i*8, 8);
$v = base_convert($u, 16, 10);
if ($v < 256 && $map[$v]) {
$encoded .= '\\x'.substr($u, 6,2);
} else if ($v == 2028) {
$encoded .= '\\u2028';
} else if ($v == 2029) {
$encoded .= '\\u2029';
} else {
$encoded .= mb_convert_encoding(hex2bin($u), 'UTF-8', 'UTF-32');
}
}
return $encoded;
}
// Veriyi sına
$convmap = [ 0x0, 0xffff, 0, 0xffff ];
$msg = '';
for ($i=0; $i < 1000; $i++) {
// chr() 128'den büyük değerler için doğru UTF-8 veri üretmez,
// yerine mb_decode_numericentity() kullanılır.
$msg .= mb_decode_numericentity('&#'.$i.';', $convmap, 'UTF-8');
}
// var_dump($msg);
var_dump(escape_javascript_string($msg));