mysql <<< "show full processlist\g"
Это, конечно, если mysql база... Для других баз, вероятно, тоже можно подобный запрос выполнять.<input type="file" accept="audio/*" capture="user">
Имеются противопоказания - не только лишь все броузеры такое любят и поддерживают.<div style="width:240px;height:40px;display:inline-block;position:relative;">
<script async ...></script>
<div style="pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;background:gray;"
</div>
pointer-events:none;
. Вот туда уже можно рисовать в бякграунде что угодно.<?php
$data = [
(object)array(
'string' => '
CHECK
',
'inQuotes' => true,
),
(object)array(
'string' => '1 + 3 . \'-\'. 4 . \'=\' . 0',
'inQuotes' => false,
),
(object)array(
'string' => '
',
'inQuotes' => true,
),
(object)array(
'string' => '<h2>',
'inQuotes' => true,
),
(object)array(
'string' => 'Olololo',
'inQuotes' => true,
),
(object)array(
'string' => '</h2>',
'inQuotes' => true,
),
(object)array(
'string' => '
',
'inQuotes' => true,
),
(object)array(
'string' => '<h2>',
'inQuotes' => true,
),
(object)array(
'string' => 'Number is, ',
'inQuotes' => true,
),
(object)array(
'string' => 'count()',
'inQuotes' => false,
),
(object)array(
'string' => '</h2>',
'inQuotes' => true,
),
(object)array(
'string' => '
',
'inQuotes' => true,
),
'
if (rand(0,1)){',
(object)array(
'string' => '
lol
',
'inQuotes' => true,
),
'
}',
];
$printecho = function($d=null){
static $parameters=[];
if(!is_null($d)){
if($d->inQuotes){
$val="'".addcslashes($d->string,'\\\'')."'";
} else {
$val = $d->string;
}
// пытаемся склеить крайние строковые значения
$count=0;
if(count($parameters)>0) {
$x = $parameters[count($parameters) - 1];
$x = preg_replace('~^(.{' . (strlen($x) - 1) . '})\'\'~s', '\1', $x . $val, -1, $count);
}
if($count>0){
$parameters[count($parameters)-1]=$x;
} else {
$parameters[] = $val;
}
} else if(!empty($parameters)){
echo 'echo '.implode(', ',$parameters).';';
$parameters=[];
}
};
foreach($data as $d){
if(is_object($d)){
$printecho($d);
} else {
$printecho();
echo $d;
}
}
$printecho();
echo '
CHECK
', 1 + 3 . '-'. 4 . '=' . 0, '
<h2>Olololo</h2>
<h2>Number is, ', count(), '</h2>
';
if (rand(0,1)){echo '
lol
';
}
Основной смысл - если строка поиска заканчивается сразу после указания цены - старая регулярка не сработает из за [^aаk] или [^в]. И зачем ковырять цену второй регуляркой, если она и так может быт выковыряна в первой.
Использование mb_ereg_replace сделано из каких высоких соображений ? Или так исторически сложилось?