标签:php
如何将低级分数转换为PHP可用于计算其值的东西.
例如¾
$l = '¾';
echo utf8_encode($l) . ' :: ' .ord($l) . ' :: ' . bin2hex($l) . ' :: ' . chr($l);
将输出如下内容:
Â:: :: 194 :: c2be ::
我们如何将其变成3/4.从字符串中提取分数时,结果是不同的:
$l = '¾ asd';
$r = utf8_encode($l[0]) . ' :: ' .ord($l[0]) . ' :: ' . bin2hex($l[0]) . ' :: ' . chr($l[0]);
echo $r;
echo ' ' ;
$l = '½ asd';
$r = utf8_encode($l[0]) . ' :: ' .ord($l[0]) . ' :: ' . bin2hex($l[0]) . ' :: ' . chr($l[0]);
echo $r;
输出:
Ã:: 194 :: c2 ::Ã:: 194 :: c2 ::
解决方法:
您可以使用iconv()将符号音译为可以轻松解析的形式:
function utf8FractionToFloat($symbol)
{
$translit = trim(iconv('UTF-8', 'ASCII//TRANSLIT', $symbol));
if ($translit && preg_match('~^(\d+)/(\d+)$~', $translit, $match)) {
return $match[1] / $match[2];
}
}
var_dump(utf8FractionToFloat('½')); // float(0.5)
var_dump(utf8FractionToFloat('¾')); // float(0.75)
标签:php
来源: https://codeday.me/bug/20191012/1900079.html