php mb_encode,PHP: mb_encode_mimeheader - Manual

i think mb_encode_mimeheader still have bug. here is sample code:

function mb_encode_mimeheader2($string, $encoding = "ISO-2022-JP") {

$string_array = array();

$pos = 0;

$row = 0;

$mode = 0;

while ($pos < mb_strlen($string)) {

$word = mb_strimwidth($string, $pos, 1);

if (!$word) {

$word = mb_strimwidth($string, $pos, 2);

}

if (mb_ereg_match("[ -~]", $word)) {    // ascii

if ($mode != 1) {

$row++;

$mode = 1;

$string_array[$row] = NULL;

}

} else {                                // multibyte

if ($mode != 2) {

$row++;

$mode = 2;

$string_array[$row] = NULL;

}

}

$string_array[$row] .= $word;

$pos++;

}

//echo "

";

//print_r($string_array);

//echo "

";

foreach ($string_array as $key => $value) {

$value = mb_convert_encoding($value, $encoding);

$string_array[$key] = mb_encode_mimeheader($value, $encoding);

}

//echo "

";

//print_r($string_array);

//echo "

";

return implode("", $string_array);

}

is not the best, but it works

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值