static public function create_dom($string = null) {
$dom = new DOMDocument();
// ----------------------------------------------------------------
// Делается обертка в виде <div> для $string. Это нужно, так как из-за LIBXML_HTML_NOIMPLIED теги могут выводиться несколько некорректно. Подробности по ссылке:
// https://stackoverflow.com/questions/29493678/loadhtml-libxml-html-noimplied-on-an-html-fragment-generates-incorrect-tags
// Также добавляется кодировка - так как без вместо текста, полученного от ckeditor, будут кракозябры.
// ----------------------------------------------------------------
$dom->loadHTML('<meta http-equiv="Content-Type" content="text/html; charset=utf-8">' . '<div>' . $string . '</div>', LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$container = $dom->getElementsByTagName('div')->item(0);
$container = $container->parentNode->removeChild($container);
while ($dom->firstChild) {
$dom->removeChild($dom->firstChild);
}
while ($container->firstChild) {
$dom->appendChild($container->firstChild);
}
return $dom;
}
static public function unwrap_tags($string, $tags) {
$dom = static::create_dom($string);
foreach ($dom->childNodes as $c) {
if (in_array($c->tagName, $tags)) {
// если просто добавить в $result $c->nodeValue, то не добавятся внутренние теги (<br>, например), ведь их нет в nodeValue.
foreach ($c->childNodes as $cc) {
$result .= $cc->ownerDocument->saveHTML($cc);
}
} else {
$result .= $c->ownerDocument->saveHTML($c);
}
}
return $result;
}
static public function prepare_text($text) {
$text = static::unwrap_tags($text, array('p', 'div', 'span'));
return $text;
}
<script>
document.addEventListener('yacounterXXXXXXXXinited',function(event){
yaCounterXXXXXXXX.reachGoal('bookForm');
});
</script>
<?php
Статические ссылки на текущий класс, такие как self:: или __CLASS__, вычисляются используя класс, к которому эта функция принадлежит, как и в том месте, где она была определенаПозднее статическое связывание
...
Позднее статическое связывание пытается устранить это ограничение, предоставляя ключевое слово, которое ссылается на класс, вызванный непосредственно в ходе выполнения.
public static function getMessage(): string
{
return 'message - ' . static::getString();
}
$arDescription = array(
'NAME' => GetMessage('GD_NAME'),
'DESCRIPTION' => GetMessage('GD_NAME'),
'ICON' => '',
'GROUP' => array('ID' => 'personal'),
'SU_ONLY' => false,
'SG_ONLY' => false,
'BLOG_ONLY' => false,
'AI_ONLY' => true,
);
$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }
var_dump($result);
https://stackoverflow.com/questions/5647461/how-do... <input name = "test[key1]" value="значение1">text1
<input name = "test[key2]" value="значение2">text2
<input name = "test[key3]" value="значение3">text3
foreach ($_POST['test'] as $key=>$value) {
print "У ключа $key значение $value ";
}
<input name = "test[]" value="значение1">text1
<input name = "test[]" value="значение2">text2
<input name = "test[]" value="значение3">text3
print $_POST['test'][0]; // Значение1
print $_POST['test'][1]; // Значение2
RewriteCond %{REQUEST_URI} ^/catalog/perchatki/$1 RewriteRule ^(.*)$ /catalog/ekipirovka/perchatki/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/catalog/perchatki/(.*)
RewriteRule ^(.*)$ /catalog/ekipirovka/perchatki/%1 [R=301,L]
RewriteRule ^(catalog)/(perchatki/.*)$ /$1/ekipirovka/$2 [R=301,L]
RewriteEngine On
RewriteRule ^catalog/perchatki/(.*)$ /catalog/ekipirovka/perchatki/$1 [NC,R=301,L]