$data = <<<XML
<settings>
<one type="gui" subtype="fullscreen">true</one>
<two type="gui" subtype="alphablend">255</two>
</settings>
XML;
function parse_xml($data)
{
$result = [];
$xml = simplexml_load_string($data);
/** @var SimpleXMLElement $node */
foreach ($xml as $key => $node) {
$value = [];
foreach ($node->attributes() as $k => $v) {
$value[$k] = (string) $v;
}
$value['value'] = (string) $node;
$result[$key] = $value;
}
return $result;
}
var_dump(parse_xml($data));
array(2) {
'one' =>
array(3) {
'type' =>
string(3) "gui"
'subtype' =>
string(10) "fullscreen"
'value' =>
string(4) "true"
}
'two' =>
array(3) {
'type' =>
string(3) "gui"
'subtype' =>
string(10) "alphablend"
'value' =>
string(3) "255"
}
}
angular.module('toster', [])
.controller('DemoCtrl', function() {
var vm = this;
vm.type = 'fruits';
vm.types = ['fruits', 'vegetables'];
vm.fruits = ['apple', 'orange', 'banana'];
vm.vegetables = ['potato', 'tomato', 'cucumber'];
});
<body ng-controller="DemoCtrl as demo">
<div>
<select ng-model="demo.type" ng-options="type as type for type in demo.types">
</select>
<p>
Selected: <span ng-bind="demo.type"></span>
</p>
</div>
<div>
<select ng-model="demo.value" ng-options="item as item for item in demo[demo.type]">
</select>
<p>
Selected: <span ng-bind="demo.value"></span>
</p>
</div>
</body>
file_put_contents(
'/path/to/some/insert/file.sql', // куда
'INSERT INTO table VALUES', // формируем запрос вставки с экранированными данными
FILE_APPEND // константа, которая указывает, что добавляем в конец файла
)
tail -f /path/to/some/insert/file.sql | mysql -uUSER -pPASS DATABASE
$language_iso2 = preg_replace_callback(
'/^([\w])/e',
function($m) {
return strtoupper($m[1]);
},
$language->iso2
);
Модификатор /e теперь считается устаревшим. Используйте функцию preg_replace_callback(). Смотрите документацию PREG_REPLACE_EVAL с дополнительной информацией и описанием проблем с безопасностью.