Как вывести 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 для приложения.

Related of "Как вывести JavaScript с помощью PHP"

Вы должны избегать разделителей строк 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 "'"; 

Ошибка, которую вы получите, если вам нужно избежать кавычек (как и другие ответы) .

Чтобы этого избежать, вы можете использовать альтернативный синтаксис для объявлений строк, называемых « Heredoc »,

С помощью этого синтаксиса вы можете объявить длинную строку, даже содержащую одинарные кавычки и / или двойные кавычки, без необходимости избегать томов; это сделает ваш код Javascript более легким для записи, изменения и понимания – что всегда хорошо.

Например, ваш код может стать:

 $str = <<<MY_MARKER <script type="text/javascript"> document.write("Hello World!"); </script> MY_MARKER; echo $str; 

Обратите внимание, что с синтаксисом Heredoc (как и с строкой, разделенной двойными кавычками) переменные интерполируются.

Другой вариант – сделать следующее:

 <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> 

Надеюсь, это поможет.

Более простой способ – использовать синтаксис heredoc для PHP. Пример:

 <?php echo <<<EOF <script type="text/javascript"> document.write("Hello World!"); </script> EOF; ?> 

Вам нужно избегать ваших котировок.

Вы можете сделать это:

 echo "<script type=\"text/javascript\">"; 

или это:

 echo "<script type='text/javascript'>"; 

или это:

 echo '<script type="text/javascript">'; 

Или просто держаться подальше от php

 <script type="text/javascript"> 

Вам нужно избегать двойных кавычек следующим образом:

 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 для получения дополнительной информации о Strings.

Кроме того, почему вы хотите печатать JavaScript с помощью PHP? Я чувствую, что что-то не так с вашим дизайном.

Следующее решение должно работать достаточно хорошо для того, что вы пытаетесь сделать.

  1. Блок JavaScript находится очень поздно в документе, поэтому вам не нужно беспокоиться о не существующих элементах.

  2. Вы устанавливаете переменную PHP в верхней части скрипта и выставляете только значение переменной в блоке JavaScript.

    Таким образом, вам не нужно беспокоиться об избежании двойных кавычек или HEREDOCS (это рекомендуемый метод, если вы действительно должны туда идти).

    Пример внедрения Javascript

     <div id="helloContainer"><div> <script type="text/javascript"> document.getElementById('helloContainer').innerHTML = '<?= $greeting; ?>'; </script> 

Вы хотите сделать это:

 <html> <body> <?php print ' <script type="text/javascript"> document.write("Hello World!") </script> '; ?> </body> </html> 

вместо этого вы могли бы легко сделать это следующим образом:

 <html> <body> <script type="text/javascript"> <?php $myVar = "hello"; ?> document.write("<?php echo $myVar ?>"); </script> </body> 

Вы используете «вместо». Он смешивает php-синтаксис с javascript. PHP собирается печатать javascript с функцией эха, но он принимает коды js как неправильный синтаксис php, поэтому попробуйте это,

 <html> <body> <?php echo "<script type='text/javascript'>"; echo "document.write('Hello World!')"; echo "</script>"; ?> </body> </html> 
 <?php echo '<script type="text/javascript">document.write(\'Hello world\');</script>'; ?> 

Попробуй это:

 <html> <body> <?php echo "<script type="text/javascript">"; echo "document.write("Hello World!");"; echo "</script>"; ?> </body> </html>