
Ринат
07.10.2018
08:25:35
это от прошлого примера осталось
с %s работает из БД

Sergey
07.10.2018
08:26:31
выложи код на нормальный хостинг, а не картинками кидай

Ринат
07.10.2018
08:30:12
https://pastebin.com/vNQytZvd

Google

Sergey
07.10.2018
08:31:34
$query['content']; ничего не может знать о переменных $l и $n, и похоже тебе стоит пройти в @phpGeeksJunior

Ринат
07.10.2018
08:33:09

~Nyctophobe
07.10.2018
08:58:03
Всем привет
php > $content = 'The {$n} contains {$l} monkeys';
php > $n = 1; $l = 2;
php > $content = eval("return \"{$content}\";");
php > var_dump($content);
string(24) "The 1 contains 2 monkeys"

Ринат
07.10.2018
09:02:50

~Nyctophobe
07.10.2018
09:03:41
Интересно когда меня тут забанят за троллинг...

(;¬_¬)
07.10.2018
09:05:50
Воу, шикарно
eval - небезопасная функция языка и часто может быть заблокирована

~Nyctophobe
07.10.2018
09:08:34

(;¬_¬)
07.10.2018
09:08:53

~Nyctophobe
07.10.2018
09:09:26

Subb98
07.10.2018
09:09:41
РКН?

(;¬_¬)
07.10.2018
09:09:48

Google

(;¬_¬)
07.10.2018
09:09:50
на уровне хоста

Subb98
07.10.2018
09:09:58
лол. шаред - наше всё?

~Nyctophobe
07.10.2018
09:10:00
Да кто щас использует shared хостинг?
Я календарь переверну.... 2018 год

(;¬_¬)
07.10.2018
09:10:17
а вы прям уверены что у него там дедик?

Subb98
07.10.2018
09:10:34
нет. но сам виноват, если там шаред :D
но и да, eval не нужен

~Nyctophobe
07.10.2018
09:10:45
VPS стоит копейки

Subb98
07.10.2018
09:11:02
смотря, какой
но, обычно, одинаково или дешевле
по соотношению

~Nyctophobe
07.10.2018
09:11:48
Тем более ничего плохого или небезопасного в eval() нет
Всё зависит от реализации ?

(;¬_¬)
07.10.2018
09:12:20
Предостережение
Языковая конструкция eval() может быть очень опасной, поскольку позволяет выполнить произвольный код. Использование данной функции не рекомендуется. Если вы полностью убеждены, что нет другого способа, кроме использования этой конструкции, обратите особое внимание на то, чтобы не передавать какие-либо данные, предоставленые пользователем, без предварительной проверки.

Subb98
07.10.2018
09:12:29

(;¬_¬)
07.10.2018
09:12:45
наверное это в руководстве по пыхе просто так написано

Subb98
07.10.2018
09:13:09

~Nyctophobe
07.10.2018
09:13:11
~((['"]).*?(?<!\\)\2|\$?\w*\s*\(((?:(?R)|.)*?)\)|(?!(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)\W)_?[\$#]?\w+#?(?:\[(?:(?R)|\w+|((?:[^\]'"]*(?:(['"]).*?(?<!\\)\5)?)*))*?\]|\.[\$#]?\w+#?|->\s*_?[\$#]?\w+#?(?:\(((?:(?R)|.)*?)\))?)*|-?\d+|(?<=^|[\s\)\:\.=+\-<>])(?!(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)\W)(?:\w+)(?=$|[\s\|\.\:\(=+\-<>]))(\s+(?:instanceof (?:[\\\w]+|(?R))|is(?:\s+not)?\s+(?:odd|div|even)\s+by\s+(?:-?\d+|(?R))|is(?:\s+not)?\s+(?:odd|even)))?((?:\|@?\w+(?:\:(?:\w*\(((?:(?R)|.)*?)\)|[\$#]\w+#?(?:\[(?:(?R)|((?:[^\]'"]*(?:(['"]).*?(?<!\\)\11)?)*))*?\]|\.[\$#]?\w+#?)*|[^'"\:]*(?:[^'"\:]*(['"]).*?(?<!\\)\12[^'"\:]*)*))*)*)|((?<=\s|\))(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)(?=\s|\()|(?:not\s+))~si

Google

Subb98
07.10.2018
09:13:52
что смешного я сказал? ргулярка узкое место, да. на одних кейсах проверил - на других нет. может неожиданно дать сбой

~Nyctophobe
07.10.2018
09:14:17
Эту регулярку я написал и использую в продакшене

Subb98
07.10.2018
09:14:34
сам себя назови как-нибудь
ибо у того, кто захочет прочесть это говно, нормальных слов для тебя не найдётся )

~Nyctophobe
07.10.2018
09:16:00
А в чём проблема?
Если есть вопросы по синтаксису — RTFM ?

Subb98
07.10.2018
09:16:20
я даже не знаю.. да хотя бы в километровом правиле?

~Nyctophobe
07.10.2018
09:17:03
Ок, до скольки символов регулярное выражение допустимо по-твоему?

Subb98
07.10.2018
09:17:17
его было бы разумно просто разбить на части для читабельности

~Nyctophobe
07.10.2018
09:17:27
Ну оно и разбито в коде на самом деле

Subb98
07.10.2018
09:17:39


~Nyctophobe
07.10.2018
09:17:46
$return = preg_replace_callback(
'~(([\'"]).*?(?<!\\\\)\2|\$?\w*\s*\(((?:(?R)|.)*?)\)'
. '|(?!(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)\W)_?[\$#]?\w+#?(?:\\[(?:(?R)|\w+|((?:[^\\]\'"]*(?:([\'"]).*?(?<!\\\\)\5)?)*))*?\\]|\.[\$#]?\w+#?|->\s*_?[\$#]?\w+#?(?:\(((?:(?R)|.)*?)\))?)*'
. '|-?\d+|(?<=^|[\s\)\:\.=+\-<>])(?!(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)\W)(?:\w+)(?=$|[\s\|\.\:\(=+\-<>]))(\s+(?:instanceof (?:[\\\\\w]+|(?R))|is(?:\s+not)?\s+(?:odd|div|even)\s+by\s+(?:-?\d+|(?R))|is(?:\s+not)?\s+(?:odd|even)))?((?:\|@?\w+(?:\\:(?:' . '\w*\(((?:(?R)|.)*?)\)|[\$#]\w+#?(?:\\[(?:(?R)|((?:[^\\]\'"]*(?:([\'"]).*?(?<!\\\\)\11)?)*))*?\\]|\.[\$#]?\w+#?)*|[^\'"\:]*(?:[^\'"\:]*([\'"]).*?(?<!\\\\)\12[^\'"\:]*)*' . '))*)*)'
. '|((?<=\s|\))(?:is\s+not|is|not\s+eq|eq|neq?|gt|lt|gt?e|ge|lt?e|mod)(?=\s|\()|(?:not\s+))'
. '~si', array($this, '_expr_token_callback'), $token);


Subb98
07.10.2018
09:17:58
бля
через конкатенацию разбито, ты просто гениален (нет)

~Nyctophobe
07.10.2018
09:18:21
Угу не забудь про (?R)

Taalaybek
07.10.2018
09:18:24
ребят где сидят джавашники? подкиньте ссылочку
заранее спс

Subb98
07.10.2018
09:18:41

Taalaybek
07.10.2018
09:18:59
я имею ввиду здесь в телеге

Ринат
07.10.2018
09:18:59

Google

Ринат
07.10.2018
09:19:15
)

Taalaybek
07.10.2018
09:19:23

~Nyctophobe
07.10.2018
09:19:34
Не слушай его

Taalaybek
07.10.2018
09:19:43
Просто чатик java devsov ссылочка плиз

Dmitriy
07.10.2018
09:19:52

Admin
ERROR: S client not available

(;¬_¬)
07.10.2018
09:19:52


~Nyctophobe
07.10.2018
09:20:15
Ну я это написал лет в 14 ещё под PHP4, так что там конечно код не самым лучшим образом оформлен.

Taalaybek
07.10.2018
09:21:25
@nyctophobe Are you java dev? Can you help my friend?

~Nyctophobe
07.10.2018
09:22:36

Subb98
07.10.2018
09:22:54
he is hellboy dev

Taalaybek
07.10.2018
09:23:12

~Nyctophobe
07.10.2018
09:28:00
Есть у кого знакомый frontend-разраб крутой? Желательно готовый переехать на Кипр =)

Taalaybek
07.10.2018
09:38:03

~Nyctophobe
07.10.2018
09:40:21
Воу, шикарно
<?php
$content = 'The {$n} contains {$l} monkeys';
$variables = [
'n' => '1',
'l' => '2'
];
$content = preg_replace_callback('~\{\$(\w+)\}~', function ($match) use ($variables) {
return $variables[$match[1]] ?? '';
}, $content);
var_dump($content);
// string(24) "The 1 contains 2 monkeys"

Ринат
07.10.2018
09:41:10

~Nyctophobe
07.10.2018
09:41:46
Через str_replace не сделаешь
Ну вернее технически сделаешь, но я уверен ты сделал неправильно
Через strtr можно сделать

Google

Ринат
07.10.2018
09:42:27

~Nyctophobe
07.10.2018
09:43:15

Ринат
07.10.2018
09:43:24
ага

~Nyctophobe
07.10.2018
09:43:37
Соответственно если первая переменная содержит {$вторая}, то будет рекурсивная замена
Короче, так себе решение
Используй либо мой вариант с preg_replace_callback либо strtr($str, $pairs)

Ринат
07.10.2018
09:44:28

Артем / IT
07.10.2018
09:47:03
Привет, в каком формате лучше хранить контент статьи? Сразу весь HTML или модули типа <big Image>URL </big image>\p<p>bla</p>
Так хранить меньше, но нужна постобработка.

~Nyctophobe
07.10.2018
09:47:10
Да не только в этом, просто у тебя обработка будет зависеть от порядка следования переменных, а это недопустимо

Ринат
07.10.2018
09:48:28

~Nyctophobe
07.10.2018
09:48:33

Ринат
07.10.2018
09:48:39
Гуд

~Nyctophobe
07.10.2018
09:49:14
php > echo strtr('ab', ['a' => 'b', 'b' => 'a']);
ba

Ринат
07.10.2018
09:49:52