парсинг html < script > через PHP не работает полностью
-
11-07-2019 - |
Вопрос
Я нахожу это очень странным, должно быть, я что-то не так делаю, но все же ... Я работаю над страницей, используя файлы PHP и TPL. В моем TPL-файле в нижнем колонтитуле есть место для дополнительных строк, если это необходимо.
Например, проверка формы с помощью Javascript.
поэтому в PHP я сделал это:
$foot = "<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>";
переменная $ foot затем анализируется, и результат в HTML такой:
<script type="text/javascript">if(document.getElementById)</script>
Итак, {loadEvents ();}
пропал без вести.
Кто-нибудь видит, что мне здесь не хватает ... Я серьезно не нахожу это. Я забыл убежать от персонажа или чего-то еще?
Решение
Очевидно, что механизм шаблонов, который вы используете , разъедает деталь в фигурных скобках.
Попробуйте что-то вроде:
$foot = "{literal}<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>{/literal}";
Другие советы
Похоже, вы используете шаблонизатор, такой как Smarty, который пытается проанализировать все, что он находит в фигурных скобках.
Эта страница из документации smarty объясняет, как сделать smarty игнорировать разделы, которые иначе были бы проанализированы.
Я верю {}, что PHP ожидает переменную внутри них. Я не проверял это, но попробуйте использовать одинарные кавычки вместо двойных кавычек.
Если вы используете smarty, вы можете использовать {literal}.