Я работаю над тем, что я думаю, будет простой задачей в php. Цель состоит в том, чтобы взять таблицу стилей и разделить все значения на 2. Это то, что у меня есть до сих пор:
<?php
$css = fopen("stylesheet.css", "r") or die("Unable to open file!");
preg_match_all( '/(?ims)([a-z0-9\s\,\.\:#_\-@]+)\{([^\}]*)\}/', $css, $arr);
$result = array();
foreach ($arr[0] as $i => $x)
{
$selector = trim($arr[1][$i]);
$rules = explode(';', trim($arr[2][$i]));
$result[$selector] = array();
foreach ($rules as $strRule)
{
if (!empty($strRule))
{
$rule = explode(":", $strRule);
$result[$selector][][trim($rule[0])] = trim($rule[1]);
}
}
}
var_dump($result);
?>
Моя таблица CSS также довольно проста
.text_1_1 {
width: 419px;
height: 101.5px;
background-size: 1459.5px 632.5px;
background-position: -486px -255.5px;
}
.text_1_2 {
width: 393.5px;
height: 49.5px;
background-size: 1459.5px 632.5px;
background-position: -7px -398.5px;
}
и мой вывод выглядит следующим образом:
array(2) {
[".text_1_1"]=>
array(4) {
[0]=>
array(1) {
["width"]=>
string(5) "419px"
}
[1]=>
array(1) {
["height"]=>
string(7) "101.5px"
}
[2]=>
array(1) {
["background-size"]=>
string(16) "1459.5px 632.5px"
}
[3]=>
array(1) {
["background-position"]=>
string(15) "-486px -255.5px"
}
}
[".text_1_2"]=>
array(4) {
[0]=>
array(1) {
["width"]=>
string(7) "393.5px"
}
[1]=>
array(1) {
["height"]=>
string(6) "49.5px"
}
[2]=>
array(1) {
["background-size"]=>
string(16) "1459.5px 632.5px"
}
[3]=>
array(1) {
["background-position"]=>
string(13) "-7px -398.5px"
}
}
}
Теперь для части, которая меня запутала, я бы хотел go в этот массив и разделить все числа на 2, которые, как я полагаю, я могу достичь с помощью для каждого, но как мне заставить его игнорировать «px» в конце каждого значения?
Спасибо за помощь, я знаю, что это должно быть что-то легкое, и мне просто не хватает этого.