1

我的代码:

    $css="
    .class1{
        padding:10px 15px 0 auto;
        padding:10px 150px 0 20px;
        padding:13px 30px 10px 50px;
        padding:24px 1px 0 -20px;
    }
    ";

下面的函数提取 [padding:] 和 [;] 之间的内容

    function extract_unit($css, $start, $end){
    $pos = stripos($css, $start);
    $str = substr($css, $pos);
    $str_two = substr($str, strlen($start));
    $second_pos = stripos($str_two, $end);
    $str_three = substr($str_two, 0, $second_pos);
    $unit = trim($str_three); // remove whitespaces
    echo $unit;
    return $unit;
    }

    echo extract_unit($css , 'padding:',';');

输出:10px 15px 0 自动

如何使用此函数提取数组中的所有填充。所以结果我需要是这样的:

    array(
    "10px 15px 0 auto",
    "10px 150px 0 20p",
    "13px 30px 10px 50px",
    "24px 1px 0 -20px"
    );
4

2 回答 2

3

您可以为此使用正则表达式

preg_match_all("/padding:(.*);/siU",$css,$output);

print_r($output[1]);

演示

于 2012-05-20T08:07:02.847 回答
3

爆炸可以做一些技巧:

// first get content inside class{} and remove "padding:"
$parts = explode( "{", $css );
$parts = str_replace( "padding:" , "", explode( "}", $parts['1'] ) );

// now break it with ';'
$padding = explode( ";", $parts['0'] );

在这里测试

于 2012-05-20T08:13:54.653 回答