Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: define и функции
Форумы портала PHP.SU » » Вопросы новичков » define и функции

Страниц (1): [1]
 

1. winddancer - 19 Ноября, 2015 - 13:57:33 - перейти к сообщению
Народ. Подскажите пожалуйста, как реализовать следующий "прикол".
Хочу в html писануть какое-то слово, а php вытаскивая его из БД понимало как php код, который я затолкал в define или же сразу как php функцию. Или без дефайна как-то напрямую функцию???

В какую сторону гуглить?
2. DelphinPRO - 19 Ноября, 2015 - 14:02:43 - перейти к сообщению
3. winddancer - 19 Ноября, 2015 - 14:29:37 - перейти к сообщению
DelphinPRO пишет:
Для начала сюда - https://www.opennet.ru/docs/RUS/smart_question/

Cпасибо за направление к такому чудесному гайду.

Подскажите теперь пожалуйста ответ на мой вопрос. Буду очень признателен Улыбка
4. esterio - 19 Ноября, 2015 - 14:39:17 - перейти к сообщению
winddancer
В том то и дело, что Ваш вопрос не совсем понятен. Приведите пример
5. winddancer - 19 Ноября, 2015 - 14:49:25 - перейти к сообщению
esterio пишет:
winddancer
В том то и дело, что Ваш вопрос не совсем понятен. Приведите пример


Прошу тогда прощение.

Смотрите. Хочу вбить в табло мускла слово [ECHO_NEWS]

Когда php открывает страницу и видит вот такое сочетание символов в квадратных скобках - он подключает функцию echo_news(); вместо этих символов.

Сама функция будет находится в файле functions.php

В ней так же имеется и функционал по выводу информации на страницу и прочее.
6. winddancer - 20 Ноября, 2015 - 10:24:03 - перейти к сообщению
Ну что, люди. Есть кто?
Пытался сравнять вместилище ячейки мускла с переменной. Но они не сравниваются ничерта.
7. andrewkard - 20 Ноября, 2015 - 10:35:14 - перейти к сообщению
winddancer пишет:
вместо этих символов.

в коде просто напишите
winddancer пишет:
echo_news();
8. vintag - 20 Ноября, 2015 - 10:38:11 - перейти к сообщению
winddancer пишет:
Ну что, люди. Есть кто?
Пытался сравнять вместилище ячейки мускла с переменной. Но они не сравниваются ничерта.

пшп пытается исполнить функцию вместо того чтобы вывести ее? а она как бы в строке находится? но это же не возможно! А?! Радость
чекнутый сервак.....
раз такое дело закодируй символы, а потом уже на джавке раскодируй и выведи нормально
или их часть
больше наверное ничего нельзя сделать, ну еще может обратный слеш подставить чтобы игнорило
9. DelphinPRO - 20 Ноября, 2015 - 10:47:05 - перейти к сообщению
вытаскиваете из БД свой текст, прогоняете его через preg_replace_callback()

PHP:
скопировать код в буфер обмена
  1. $content = queryFromDB();
  2.  
  3. preg_replace_callback('\[([A-Z_]+)\]', function($matches){
  4.    $functionName = $matches[1];
  5.    if (function_exists($functionName)) {
  6.         call_user_func($functionName);
  7.    }
  8. }, $content);

(Добавление)
Ну еще добавите замену паттерна на результат функции (return результата)
10. winddancer - 20 Ноября, 2015 - 10:51:23 - перейти к сообщению
andrewkard пишет:
winddancer пишет:
вместо этих символов.

в коде просто напишите
winddancer пишет:
echo_news();



Смотрите. Если было так легко - я бы сделал уже.

Ситуация следующая. Админка моя висит на php файлах. С выводом функций проблем не имеется(в том числе и подключением).
Другая сторона монеты - клиентская часть. Все страницы ее держатся на MySQL.
Вот и требуется интересная реализация, так как такой в гугле я не нашел(убил вчера весь вечер и сегодня утром еще не мало).

Требуется вбить в ячейку "слово" и когда "if" видит такое слово, тогда он его интерпретирует в php код, убирая само слово(но не удаляя его с ячейки, так как потом еще будут обращаться к ней), а вместо него высвечивая результат функции.


С учетом того, что с MySQL выходит только html код, а каждый раз засовывать все функции в MySQL это не то, что хочется получить в итоге - получилось такое интересное задание.
11. andrewkard - 20 Ноября, 2015 - 13:21:17 - перейти к сообщению
Два раза прочитал, ничего не понял Не понял
winddancer пишет:
Требуется вбить в ячейку "слово"

В ячейку базы?
winddancer пишет:
и когда "if" видит такое слово

Где будет этот IF, в php файле?
winddancer пишет:
С учетом того, что с MySQL выходит только html код

т.е. у Вас весь <html> код целиком в таблице БД лежит?
12. winddancer - 20 Ноября, 2015 - 22:47:42 - перейти к сообщению
andrewkard пишет:
Два раза прочитал, ничего не понял Не понял
winddancer пишет:
Требуется вбить в ячейку "слово"

В ячейку базы?
winddancer пишет:
и когда "if" видит такое слово

Где будет этот IF, в php файле?
winddancer пишет:
С учетом того, что с MySQL выходит только html код

т.е. у Вас весь <html> код целиком в таблице БД лежит?


Пока-что пытаюсь реализовать тот код, который дал товарищь DelphinPRO, но безрезультатно.

Смотрите. Хочу, чтобы когда я вставил через INPUT в базу данных(таблица, которая отвечает за страницы) "некое слово"(Например [ECHO NEWS]), php его "ловил" и при формировании html страницы он вместо него вставлял функцию echo_news(); которая находится в файле function.php

Вывод информации из таблицы опять же определяется функцией echo_text(); в файле function.php

Вот в Ucoz есть такая похожая фишка(или когда-то было), когда вводишь в "[]" некое определенное слово - подключается некий необходимый модуль вместо такого слова в скобках.

 

Powered by ExBB FM 1.0 RC1