Передача обертки как опция в массиве php

То, что я пытаюсь сделать здесь, это то, что я создаю php-приложение, но я хочу иметь варианты.

Пример :

   $options= array(
'elementWrapper'=>'<div class="wrapper"></div>'
);

And passing it like :

$myapp->options($options);

Как разделить эту строку elementWrapper как две переменные: |

$elementWrapperStart - (<div class="wrapper">) and $elementWrapperEnd - (</div>);

Или, может быть, это не будет div в некоторых случаях, чтобы обработать это автоматически и обернуть элементы внутри этого переданного элемента.

Любая помощь будет оценена.
Спасибо

0

Решение

Еще один массив …

$options= array(
'elementWrapper' => array(
'start'=> '<div class="wrapper">',
'end'  => '</div>'
)
);

Доступно как $options['elementWrapper']['start'] а также $options['elementWrapper']['end']:

$elementWrapperStart = $options['elementWrapper']['start'];
$elementWrapperEnd   = $options['elementWrapper']['end'];
1

Другие решения

Как уже указывал @bwoebi, вам, скорее всего, стоит использовать DOMDocument поскольку использование синтаксических или регулярных выражений очень подвержено ошибкам при разборе строк HTML.

// I´m just assuming your class looks something like this:
class MyApp {

private $options;

public function options($options) {

if (isset($options['elementWrapper'])) {
$dom = new DomDocument;
$dom->loadHtml($options['elementWrapper']);
$options['elementWrapper'] = $dom->documentElement;
}
$this->options = $options;
}
}
0

Почему бы просто не передать массив из двух элементов:


$myapp->options(array(
array(
'start' => '<div class="wrapper">',
'end'   => '</div>'
)
));
-1
По вопросам рекламы [email protected]