Разбор HTML <script>через PHP не работает полностью - PullRequest
3 голосов
/ 01 декабря 2008

Я нахожу это очень странным, должно быть, я что-то не так делаю, но все же ... Я работаю над страницей, используя файлы 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();} пропал без вести.

Кто-нибудь видит, что мне здесь не хватает ... Я серьезно не нахожу это. Я забыл убежать от персонажа или чего-то еще?

Ответы [ 4 ]

8 голосов
/ 01 декабря 2008

Очевидно, что шаблонизатор , который вы используете , разъедает деталь в фигурных скобках.

Попробуйте что-то вроде:

$foot = "{literal}<script type=\"text/javascript\">if(document.getElementById){loadEvents();}</script>{/literal}";
2 голосов
/ 01 декабря 2008

Похоже, вы используете шаблонизатор, такой как Smarty, который пытается проанализировать все, что находит в фигурных скобках.

Эта страница из документации smarty объясняет, как заставить smarty игнорировать разделы, которые она иначе проанализировала бы.

1 голос
/ 01 декабря 2008

Если вы используете smarty, вы можете использовать {literal}.

буквальным

1 голос
/ 01 декабря 2008

Я верю {}, что PHP ожидает переменную внутри них. Я не проверял это, но попробуйте использовать одинарные кавычки вместо двойных кавычек.

...