У меня все еще стоит серьезная проблема, о которой в предыдущем вопросе, к сожалению, не ответили. Я хочу сделать следующее:Храните переменную от preg_split и используйте ее в сочетании со словом
У меня есть сделанный на заказ cms, где я хочу использовать короткие коды для использования плагинов. Это работает так:
this is a text
[plugin-blog]
this is more text
and some more
[plugin-contact]
Что выводит это:
this is a text
include_once('plugins/blog/blog.php'); <- loads specific file for plugin
this is more text
and some more
include_once('plugins/contact/contact.php'); <- loads specific file for plugin
Это работает хорошо, но то, что я хочу иметь определенный идентификатор из плагина, который я хочу позвонить с [plugin-blog 2]
. Мне нужно сохранить номер плагина и использовать его позже внутри php-файла плагина, подобного этому SELECT * FROM 'plugin_db' WHERE 'id' = $value_from_shortcode
Как это сделать? Я совершенно не понимаю, как подойти к этой проблеме. Я пробовал буквально все, но либо цикл больше не работает, а число не сохраняется вместе с именем плагина. У меня есть следующий код:
$regex = '~\[plugin-([^]]+)]~';
$content_one = htmlspecialchars_decode($page['content_one']);
$parts = preg_split($regex, $content_one, -1, PREG_SPLIT_DELIM_CAPTURE);
foreach($parts as $k => $v){
if($k & 1)
include_once('plugins/'.$v.'/'.$v.'.php');
else
echo htmlspecialchars_decode($v);
}
Вы столкнулись с последствиями очень плохого дизайна и следовали за анти-шаблонами и плохо понимали, как работает php. На самом деле это не проблема с preg_split, но, вероятно, с какой-то причиной вы используете двоичный оператор вместо логического? Что вы ожидали от '$ k & 1'? Сравните это с 1? В php вместо этого вы делаете '1 == $ k'. – baldrs
Или это нечетная проверка номера? Поскольку каждое нечетное число имеет последний 1 в его двоичном представлении? – baldrs
$ k & 1 - это единственная часть, которую я сам не писал, а разработчик в команде, который заставлял ее работать. Не уверен, что делает. Мое знание php является основным в этом вопросе :(Надеюсь, кто-то может мне помочь. – Saypontigohe