什么是解析字符串并在PHP中用1/2(和类似)替换1/2的最简单方法?

时间:2010-09-22 05:52:16

标签: php unicode fractions

我有一个包含许多分数的字符串,如1/2,1 / 4等。我想用它们的Unicode等价替换它们。

我意识到我可以用

来接他们
/\s(\d+)\/(\d+)\s/

我如何用它们的Unicode等价替换它们?我可以将数字包装在span中并用CSS做类似的事情,但我想知道是否有一种简单的方法来转换它们。

我是否需要将正则表达式的1:1映射到Unicode字符?

2 个答案:

答案 0 :(得分:6)

以这种方式显示它会有更好的运气。并非所有人都拥有您需要的Unicode字体。

echo preg_replace ( '/\b(\d+)\/(\d+)\b/', '<sup>$1</sup>/<sub>$2</sub>', $fraction );

或:

echo preg_replace ( '/\b(\d+)\/(\d+)\b/', '<sup>$1</sup>&#8260;<sub>$2</sub>', $fraction );

小数斜杠&#8260;看起来像/。

如果您需要显示大部分,这仍然是最佳解决方案: 2567 / 5798

答案 1 :(得分:4)

鉴于其中只有少数,你可以像这样创建一个映射:

$fractions = array(
    '1/4' => '¼', '1/3' => '⅓',
    '3/8' => '⅜', ...
  );

我认为这可能是最简单的方法......请记住,许多人不会安装可以显示所有这些字体的字体。