需要一个正则表达式来替换左边的右边和右边的左边
我有一些需要在RTL方向模板中使用的css文件。我需要使用php和正则表达式在这些css文件中将所有的左对齐和右对齐。需要一个正则表达式来替换左边的右边和右边的左边
例如:当它显示“margin-left”时,它应该是“margin-right”,反之亦然。
更简单的方式做这将是:
$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
位置值相同。
这应招
preg_replace_callback('/(.+)\-(left|right)/i', function($match) { return $match[1].'-'.($match[2] == 'left' ? 'right' : 'left'); }, $str);
如果用正则表达式做它,你应该做的正向查找:和另一个用于“/ N”,这样一来,你不会像更换背景值:URL(图片 - left.png)。我并没有对我的回答这样做是因为“左:”和“左:”和“左\ T:”都是有效的CSS – SinistraD 2012-03-23 15:17:45
呀你完全正确,这将需要一些进一步的工作。 – 2012-03-23 15:25:08
为什么用PHP做呢?使用文本编辑器并替换它,这很容易 – Alex 2012-03-23 14:55:19
因为它只需要替换为RTL用户? – 472084 2012-03-23 15:01:31
,因为有很多css文件需要更改,我也想让脚本稍后使用它。还有,你真的有时间在10个CSS文件中全部左右移动吗? – alhoseany 2012-03-24 10:09:41