PHP анализирует содержимое JavaScript внутри heredoc

<?php
$javascript = <<<EOT
<script type="text/javascript">
function test () {
return 'test test test \n test test test';
}
</script>
EOT;

echo $javascript;
?>

\ N выше анализируется PHP как новая строка, генерирует исходный код HTML, как показано ниже

    return 'test test test
test test test';

и это приводит к синтаксической ошибке JavaScript: неопределенный строковый литерал.


У меня есть большой кусок кода JavaScript, поэтому я не хочу оборачивать их как

$javascript = "<script type=\"text/javascript\">\nfunction test()...\n";

и на самом деле код JavaScript не напрямую выводится на страницу, он передается другой функции, поэтому мне нужна переменная PHP.


Итак, как я могу определить переменную PHP, которая содержит большой кусок кода JavaScript без проблем?

Есть ли способ как if / endif?

<?php if (condition): ?>
html code...
<?php endif ?>

4

Решение

Вариант 1: использовать NOWDOC, что для HEREDOCs как ' одинарные кавычки " двойные кавычки.

$javascript = <<<'EOT'
...\n...
EOT;

Вариант 2: избежать специального символа:

$javascript = <<<EOT
...\\n...
EOT;
6

Другие решения

Мой код:

$javascript = <<<'EOT'
<script type="text/javascript">
$demo = 'test';
alert($demo);
</script>
EOT;
echo $javascript;

Если я использую ‘EOT’, тогда мой код в javascript работает хорошо, но я использую EOT, тогда мой код поймет, что $ dem является переменной в PHP

0

По вопросам рекламы [email protected]