Распарсить svg файлы

239
03 июля 2018, 21:10

Есть несколько svg файлов следующего формата

<svg version="1.1" id="floor" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1170 689" style="enable-background:new 0 0 1170 689;" xml:space="preserve">
    <path fill="#bbbbbb" id="1_1" stroke="none" opacity="1" d="M336,81 336,45 176,45 176,103 176,299 289,299 311,299 336,299 440,299 440,81Z"/>
    <path fill="#bbbbbb" id="1_2" stroke="none" opacity="1" d="M598,365 598,616 440,616 440,583 440,365Z"/>
    <path fill="#bbbbbb" id="1_3" stroke="none" opacity="1" d="M277,365 284,365 289,365 440,365 440,583 284,583 284,616 176,616 176,587 176,365Z"/>
    <path fill="#bbbbbb" id="1_4" stroke="none" opacity="1" d="M289,299 289,365 284,365 277,365 176,365 176,587 26,587 26,103 176,103 176,299Z"/>
    <path fill="#bbbbbb" id="1_5" stroke="none" opacity="1" d="M911,365 1016,365 1016,583 1131,583 1131,109 1016,109 1016,299 911,299Z"/>
    <path fill="#bbbbbb" id="1_6" stroke="none" opacity="1" d="M754,583 911,583 911,616 1016,616 1016,583 1016,365 911,365 754,365Z"/>
    <path fill="#bbbbbb" id="1_7" stroke="none" opacity="1" d="M858,81 754,81 754,299 858,299 893,299 911,299 1016,299 1016,109 1016,45 858,45Z"/>
    <path fill="#bbbbbb" id="1_8" stroke="none" opacity="1" d="M754,583 754,616 598,616 598,365 754,365Z"/>
</svg>

Можно ли как то распарсить пути на php. Необходимо заполнить массив где ключ в массиве будет id, а значение d?

Answer 1
$TEXT = <<<EXAMPLE
<svg version="1.1" id="floor" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1170 689" style="enable-background:new 0 0 1170 689;" xml:space="preserve">
    <path fill="#bbbbbb" id="1_1" stroke="none" opacity="1" d="M336,81 336,45 176,45 176,103 176,299 289,299 311,299 336,299 440,299 440,81Z"/>
    <path fill="#bbbbbb" id="1_2" stroke="none" opacity="1" d="M598,365 598,616 440,616 440,583 440,365Z"/>
    <path fill="#bbbbbb" id="1_3" stroke="none" opacity="1" d="M277,365 284,365 289,365 440,365 440,583 284,583 284,616 176,616 176,587 176,365Z"/>
    <path fill="#bbbbbb" id="1_4" stroke="none" opacity="1" d="M289,299 289,365 284,365 277,365 176,365 176,587 26,587 26,103 176,103 176,299Z"/>
    <path fill="#bbbbbb" id="1_5" stroke="none" opacity="1" d="M911,365 1016,365 1016,583 1131,583 1131,109 1016,109 1016,299 911,299Z"/>
    <path fill="#bbbbbb" id="1_6" stroke="none" opacity="1" d="M754,583 911,583 911,616 1016,616 1016,583 1016,365 911,365 754,365Z"/>
    <path fill="#bbbbbb" id="1_7" stroke="none" opacity="1" d="M858,81 754,81 754,299 858,299 893,299 911,299 1016,299 1016,109 1016,45 858,45Z"/>
    <path fill="#bbbbbb" id="1_8" stroke="none" opacity="1" d="M754,583 754,616 598,616 598,365 754,365Z"/>
</svg>
EXAMPLE;

preg_match_all('/path(.*?) id="(.*?)" (.*?) d="(.*?)"/is', $TEXT, $OUT, PREG_SET_ORDER);
$RESULT = array();
foreach ($OUT as $key => $value) {
    $RESULT[$value[2]] = $value[4];
}
var_dump($RESULT);
READ ALSO
Expected response code 250 but got code &ldquo;554&rdquo;, with message &ldquo;554 5.7.1 [1] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc.. &rdquo;

Expected response code 250 but got code “554”, with message “554 5.7.1 [1] Message rejected under suspicion of SPAM; https://ya.cc/1IrBc.. ”

Столкнулась с такой проблемой, при регистрации на сайте через емайл example@mailru выходит ошибка:

261
Как вывести родительский атрибут?

Как вывести родительский атрибут?

Как можно вывести родительский атрибут и атрибут самой страницы? Например: Главная - КаталогНа определённой странице?

202
Как правильно сделать get запрос для instagram?

Как правильно сделать get запрос для instagram?

Когда авторизировался в веб версии Instagram и нажал на кнопку количества друзей, то отправился get-запрос:

234
Помощь с JS кодом (WooCommerce)

Помощь с JS кодом (WooCommerce)

Есть код из Woo нужно сделать так, чтобы при активном radio изменялся фон у li, в котором он находитсяКод прилагаю:

155