Нужна помощь с переписыванием preg_replace
в preg_replace_callback
:
$send_mess = preg_replace("/private \[(.*)\]/Ue","'<span class=user-to-private data=\"'.(('\\1' != '" . $user['login'] . "')?'\\1':'" . $send_login ."').'\">private [</span><span class=user-to-private name=\"\\1\" data=\"'.(('\\1' != '". $user['login'] . "')?'\\1':'" . $send_login ."').'\">\\1</span><span class=user-to-private data=\"'.(('\\1' != '". $user['login'] . "')?'\\1':'" . $send_login ."').'\">]</span>'", $send_mess);
P.S. Мануалы читал, но ничего не вышло. Заранее благодарю.
строка взята из работающего проекта под пхп5.4. пхп7.2 ругается на модификатор /e и не выполняет этот код. именно из за этого нужно использовать preg_replace_callback
На preg_replace_callback() код будет выглядеть так:
$send_mess = preg_replace_callback(
'~private \[(.*?)\]~',
function ($m) use (&$user, &$send_login){
return '<span class=user-to-private data="'
. ($m[1] != $user['login'] ? $m[1] : $send_login)
. '">private [</span><span class=user-to-private name="'
. $m[1] . '" data="' . ($m[1] != $user['login'] ? $m[1] : $send_login)
. '">' . $m[1] . '</span><span class=user-to-private data="'
. ($m[1] != $user['login'] ? $m[1] : $send_login) . '">]</span>';
},
$send_mess
);
echo $send_mess;
Возвращает он такую же строку, как и ваш аналог. Ну а раз вы говорите, что так и надо, то так и будет. Хотя конечно прочитать такой код не реально.
Необходимые данные:
$user['login'] = 'Юзер_Логин';
$send_login = 'Логин';
$send_mess = 'private [что-то]';
Сама переписанная конструкция:
$send_mess = preg_replace_callback(
'/private \[(.*)]/U',
function ($call) use ($user, $send_login)
{
$logic = $call[1] != $user['login'] ? $call[1] : $send_login;
return "
<span class=user-to-private data=\"{$logic}\">private [</span>
<span class=user-to-private name=\"{$call[1]}\" data=\"{$logic}\">{$call[1]}
</span><span class=user-to-private data=\"{$logic}\">]</span>
";
},
$send_mess
);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не выводиться запись из бд типу VarcharОтправляю через AJAX запрос в бд, в ответ получаю пустой запрос, но если сделаю выборку и закоментирую некоторое...
Допустим, я хочу сделать поискЭтот код ищет 2 или 3 заданых слова одновременно, это хорошо, так и задумано
Пример брал отсюдаПомогите реализовать сохранение файла конкретно на сервере в автоматическом режиме, а не сохранение файла на компьютер...