需要一个正则表达式来代替左侧的右侧和右侧

时间:2012-03-23 14:53:48

标签: php css regex

我有一些我需要在RTL方向模板中使用的css文件。我需要使用php和正则表达式在这些css文件中从左到右和从右到左转换。

例如:当它表示“margin-left”时,它应该是“margin-right”,反之亦然。

2 个答案:

答案 0 :(得分:4)

更简单的方法是:

$rtl = str_replace('left', '{left}', $css);
$rtl = str_replace('right', '{right}', $rtl);
$rtl = str_replace(array('{left}', '{right}'), array('right', 'left'), $rtl);

更大的问题是这些css:

margin: 0 5px 0 10px;

更大的问题:

box-shadow: inset 3px 4px 32px black, 2px 3px 2px white

您应该澄清可能出现的CSS类型。我认为你不想写一个完整的CSS解析器

修改 我将-left替换为left,将右侧替换为position: absolute定位值。

答案 1 :(得分:1)

这应该是技巧

preg_replace_callback('/(.+)\-(left|right)/i', function($match) { return $match[1].'-'.($match[2] == 'left' ? 'right' : 'left'); }, $str);