Как вывести JavaScript с помощью PHP
Я новичок в PHP. Мне нужно вывести следующий JavaScript с PHP. Это мой код:
<html>
<body>
<?php
echo "<script type="text/javascript">";
echo "document.write("Hello World!")";
echo "</script>";
?>
</body>
</html>
Но он показывает ошибку:
Ошибка анализа: синтаксическая ошибка, неожиданный T_STRING, ожидающий ',' или ';' в /var/www/html/workbench/person/ script.php в строке 4
Кто-нибудь может помочь? Мне также нужны простые учебники по использованию PHP, HTML и JavaScript для приложения.
Ответы
Ответ 1
Вам следует избегать разделителей строк JavaScript внутри строки PHP. Вы используете двойные кавычки для строк PHP и JavaScript. Вместо этого попробуйте:
<html>
<body>
<?php
// Here, we use single quotes for PHP and double quotes for JavaScript
echo '<script type="text/javascript">';
echo 'document.write("Hello World!")';
echo '</script>';
?>
</body>
</html>
Вам нужно избежать кавычек на JavaScript и PHP, когда разделитель строк совпадает с кавычками:
echo "\""; // escape is done using a backslash
echo '\'';
То же самое в JavaScript:
alert("\""); // escape is done using a backslash
alert(echo '\'');
Но так как очень трудно читать строку с такими escape-последовательностями, лучше комбинировать одиночные с двойными кавычками, если необходимо:
echo '"';
echo "'";
Ответ 2
Ошибка, которую вы получите, если вам нужно избежать кавычек (как и другие ответы).
Чтобы этого избежать, вы можете использовать альтернативный синтаксис для объявлений строк, называемый Heredoc"
С помощью этого синтаксиса вы можете объявить длинную строку, даже содержащую одинарные кавычки и/или двойные кавычки, без необходимости избегать тонов; это сделает ваш код Javascript более легким для записи, изменения и понимания - что всегда хорошо.
В качестве примера ваш код может стать:
$str = <<<MY_MARKER
<script type="text/javascript">
document.write("Hello World!");
</script>
MY_MARKER;
echo $str;
Обратите внимание, что с синтаксисом Heredoc (как и с строкой, разделенной двойными кавычками) переменные интерполируются.
Ответ 3
Другой вариант - сделать это следующим образом:
<html>
<body>
<?php
...php code...
?>
<script type="text/javascript">
document.write("Hello World!");
</script>
<?php
....php code...
?>
</body>
</html>
и если вы хотите использовать php внутри своего javascript, выполните следующие действия:
<html>
<body>
<?php
$text = "Hello World!;
?>
<script type="text/javascript">
document.write("<?php echo $text ?>");
</script>
<?php
....php code...
?>
</body>
</html>
Надеюсь, это поможет.
Ответ 4
Более простой способ - использовать синтаксис heredoc для PHP. Пример:
<?php
echo <<<EOF
<script type="text/javascript">
document.write("Hello World!");
</script>
EOF;
?>
Ответ 5
Вам нужно избежать двойных кавычек следующим образом:
echo "<script type=\"text/javascript\">";
echo "document.write(\"Hello World!\")";
echo "</script>";
или используйте одиночные кавычки внутри двойных кавычек, например:
echo "<script type='text/javascript'>";
echo "document.write('Hello World!')";
echo "</script>";
или наоборот, например:
echo '<script type="text/javascript">';
echo 'document.write("Hello World!")';
echo '</script>';
Кроме того, ознакомьтесь с PHP Manual для получения дополнительной информации о строках.
Кроме того, почему вы хотите печатать JavaScript с помощью PHP? Я чувствую, что с вашим дизайном что-то не так.
Ответ 6
Вам нужно избегать ваших котировок.
Вы можете сделать это:
echo "<script type=\"text/javascript\">";
или это:
echo "<script type='text/javascript'>";
или это:
echo '<script type="text/javascript">';
Или просто оставайтесь в стороне от php
<script type="text/javascript">
Ответ 7
Следующее решение должно работать достаточно хорошо для того, что вы пытаетесь сделать.
-
Блок JavaScript расположен очень поздно в документе, поэтому вам не нужно
беспокоиться о не существующих элементах.
-
Вы устанавливаете переменную PHP в верхней части script и выводите только
значение переменной в блоке JavaScript.
Таким образом, вам не нужно беспокоиться об избежании двойных кавычек или HEREDOCS
(это рекомендуемый метод, если вы действительно должны туда идти).
Пример внедрения Javascript
<div id="helloContainer"><div>
<script type="text/javascript">
document.getElementById('helloContainer').innerHTML = '<?= $greeting; ?>';
</script>
Ответ 8
Вы хотите сделать это:
<html>
<body>
<?php
print '
<script type="text/javascript">
document.write("Hello World!")
</script>
';
?>
</body>
</html>
Ответ 9
вместо этого вы можете легко сделать это следующим образом:
<html>
<body>
<script type="text/javascript">
<?php
$myVar = "hello";
?>
document.write("<?php echo $myVar ?>");
</script>
</body>
Ответ 10
Вы используете "вместо". Он смешивает php-синтаксис с javascript. PHP собирается печатать javascript с функцией эха, но он принимает коды js как неправильный синтаксис php, поэтому попробуйте это,
<html>
<body>
<?php
echo "<script type='text/javascript'>";
echo "document.write('Hello World!')";
echo "</script>";
?>
</body>
</html>
Ответ 11
<?php
echo '<script type="text/javascript">document.write(\'Hello world\');</script>';
?>
Ответ 12
Попробуйте следующее:
<html>
<body>
<?php
echo "<script type="text/javascript">";
echo "document.write("Hello World!");";
echo "</script>";
?>
</body>
</html>