1

我想转换 html 文档中的所有尺寸。带有 **px 的所有内容都应除以 4。因此 100px 将变为 25px。

例如:

<div style="height:100px;"></div>

应该成为

<div style="height:25px;"></div>

这是我写的一个php代码。但它不起作用。

$content = "<div style=\"height:100px;\"></div>";
$regex = "#([0-9]*)px#";
$output = preg_replace($regex,"$1/4",$content);

我该怎么办?

4

3 回答 3

3

作为 的替代方法preg_replace_callback,您可以使用e修饰符将替换评估为 php:

$content = "<div style=\"height:100px;\"></div>";
$regex = "#([0-9]*)px#e";
$output = preg_replace($regex,"round($1/4).'px'",$content);
于 2013-02-03T17:07:52.260 回答
0

http://php.net/manual/en/function.preg-replace-callback.php与这样的回调函数一起使用

function divideBy4($m) {
   return ceil($m[1]/4);
}
于 2013-02-03T17:00:21.540 回答
0
<?php
$content = "<div style=\"height:100px;\"></div>";
$regex = "#([0-9]*)px#";

$output = preg_replace_callback($regex, 
   create_function('$matches', 
   'return ceil($matches[1]/4)."px";'), 
   $content);
?>

<?php
$content = "<div style=\"height:100px;\"></div>";
$regex = "#([0-9]*)px#";
$output = preg_replace_callback($regex, 'myfunc', $content);
function myfunc($matches){
 return ceil($matches[1]/4).'px';
}
?>
于 2013-02-03T17:23:11.077 回答