缩放正则表达式反向引用

时间:2015-01-25 01:50:40

标签: php regex

我需要将font-size pt值转换为font-size px值。由于我有一个96dpi的屏幕,我需要将pt值放大1.33,以便px值在屏幕上的大小与pt值相同。到目前为止我已经

$pattern = "/(\d+)pt/";
$replacement = "$1px"; 
$data = preg_replace($pattern, $replacement, $data);  

但这只是用'px'取代'pt'。替换线需要像$ replacement =“(1.33 * $ 1)px”;

我该怎么做?

1 个答案:

答案 0 :(得分:3)

您需要使用preg_replace_callback function

$data = "5pt";
$pattern = "~(\d+)pt~";
$data = preg_replace_callback($pattern, function($m) {
    return 1.33*$m[1]."px";
}, $data);
echo $data;

输出:

6.65px