Интерпретатор PHP будет искать только теги <?php
и ?>
и пытаться оценить что-либо промежуточное.Его не волнуют окружающие цитаты.Тем не менее, вам нужно убедиться, что результат того, что делает PHP, является действительным Javascript.
var foo = '<?php include 'foo.php'; ?>';
становится
var foo = 'This is the content of foo.php.';
после того, как PHP завершит работу с ним.в foo.php
есть любые кавычки, они могут выглядеть так:
var foo = 'This is the 'content' of foo.php.';
, что является недопустимым синтаксисом Javascript.Вам нужно будет экранировать любой символ foo.php
, который может вызвать такой недопустимый синтаксис, например, с addslashes
.Это может быть довольно громоздким, поэтому я бы посоветовал поискать альтернативу для начала.
Вы можете кодировать значение, используя JSON, что определенно безопасно для синтаксиса:
var foo = <?php echo json_encode("Some string with 'quotes'."); ?>;
Генерировать код в коде всегда сложно, старайтесь не делать этого и придерживайтесь нейтральных по отношению к языку форматов обмена данными, таких как JSON или XML.