Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CSS&;Regex,切换填充或边距属性的值_Php_Css_Regex_Margin_Padding - Fatal编程技术网

Php CSS&;Regex,切换填充或边距属性的值

Php CSS&;Regex,切换填充或边距属性的值,php,css,regex,margin,padding,Php,Css,Regex,Margin,Padding,我有CSS代码,我想找到填充或空白属性 (其中有4个值)并用右值切换左值: e、 g.填充:1px2p3px4px -像这样- 填充:1px 4px 3px 2px 如何使用regex和PHP实现这一点?:-) 试试这个: preg_replace( '/padding:\s*?(\d*px)\s*(\d*px)\s*(\d*px)\s*(\d*px)\s*?;/i', 'padding: $1 $4 $3 $2;', $css ); 解释 \s匹配空格 \d匹配一个数

我有CSS代码,我想找到填充或空白属性 (其中有4个值)并用右值切换左值:
e、 g.
填充:1px2p3px4px
-像这样-
填充:1px 4px 3px 2px
如何使用regex和PHP实现这一点?:-)

试试这个:

preg_replace(
    '/padding:\s*?(\d*px)\s*(\d*px)\s*(\d*px)\s*(\d*px)\s*?;/i',
    'padding: $1 $4 $3 $2;',
    $css
);
解释
\s
匹配空格

\d
匹配一个数字


\d*px
将匹配任何后跟“px”的数字

您希望在PHP代码或Javascript中发生这种情况吗?我看不出你必须在php代码中做这样的更改。@Svetlio我想让php代码在CSS文件中搜索,并进行切换和替换,然后用更改重写CSS。属性之间可能有多个空格。否决权之争?规则后面可能没有分号。这匹配无效的内容,如
padding:1px2px3px4px@Eric将其更改为
'/padding:\s*?(\d*p?x?)\s*(\d*p?x?)\s*(\d*p?x?)\s*(\d*p?x?)\s*?/i'
,以便匹配边距:0 5px 0 10px