我有一些我需要在RTL方向模板中使用的css文件。我需要使用php和正则表达式在这些css文件中从左到右和从右到左转换。
例如:当它表示“margin-left”时,它应该是“margin-right”,反之亦然。
答案 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);