如何将粗俗的部分变成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 ::
答案 0 :(得分:7)
您可以使用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)