Вставка php в javascript работает на php5, но не на php7

Этот фрагмент работал в php5.6, но не в php7.

mp3: <script language = "php"> echo "\"" . $MP3FILE . "\"";</script>

Ошибка: Uncaught SyntaxError: Неожиданный токен < (Я подтвердил, что php7 работает и обрабатывает файлы php на моем сервере.)

Сайт: DNSpanishEnglish.php где он работает под php5.6. Вот все заявление, просто для контекста.

$(document).ready(function(){
  $("#jQ_jP").jPlayer( {
          ready: function () {
                  $(this).jPlayer("setMedia", {
                         mp3: <script language = "php"> echo "\"" . $MP3FILE . "\"";</script>
                // Defines the mp3 url
          });
         startingTime = 45;
         //endingTime = $(this).jPlayer("status", "duration");
         //myAlert( "  endingTime is " + endingTime);
                  $(this).jPlayer("play", 45);  // THIS WORKS!!!!!
                  //$(this).jPlayer("play").jPlayer("stop").jPlayer("playHead", ).jPlayer.status.currentTime);
                  //$(this).jPlayer("playHead", {time: 50});
                  //$(this).jPlayer("play" , { time: 45 }); // works (required for auto-play), but the time args doesnt work.
          //  $(this).jPlayer("playHeadTime" , { time: 45000 });
         $("#jQ_jP").bind($.jPlayer.event.play, function(event) {
                  // Add a listener to report the time play began
                  //myAlert("HELLO from jplayer_1" +
                         //"Play began at time = " +
                  //     event.jPlayer.status.currentTime
                                  //);  // OK, this is happening.
                  //$("#jQ_jP").playHead(50); //doesnt work.
                  $("#jQ_jP").playHeadTime(45000);
                        // milliseconds. doesnt work.
         });
         $("#jQ_jP").playHeadTime(5000); // doesnt work.
          } // End of "ready". No semicolon here!
 });
});

Почему <script language = "php">? Почему не <?php? Или даже лучше, <?=.

cHao 20.05.2018 05:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
95
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Определите свою переменную в другом месте php, и вы можете использовать ее в этом скрипте.

PHP

$MP3FILE = <?php echo $MP3fileLink ?>

JS

$(document).ready(function(){
  $("#jQ_jP").jPlayer( {
          ready: function () {
                  $(this).jPlayer("setMedia", {
                         mp3: $MP3FILE 
                // Defines the mp3 url
          });
         startingTime = 45;
         //endingTime = $(this).jPlayer("status", "duration");
         //myAlert( "  endingTime is " + endingTime);
                  $(this).jPlayer("play", 45);  // THIS WORKS!!!!!
                  //$(this).jPlayer("play").jPlayer("stop").jPlayer("playHead", ).jPlayer.status.currentTime);
                  //$(this).jPlayer("playHead", {time: 50});
                  //$(this).jPlayer("play" , { time: 45 }); // works (required for auto-play), but the time args doesnt work.
          //  $(this).jPlayer("playHeadTime" , { time: 45000 });
         $("#jQ_jP").bind($.jPlayer.event.play, function(event) {
                  // Add a listener to report the time play began
                  //myAlert("HELLO from jplayer_1" +
                         //"Play began at time = " +
                  //     event.jPlayer.status.currentTime
                                  //);  // OK, this is happening.
                  //$("#jQ_jP").playHead(50); //doesnt work.
                  $("#jQ_jP").playHeadTime(45000);
                        // milliseconds. doesnt work.
         });
         $("#jQ_jP").playHeadTime(5000); // doesnt work.
          } // End of "ready". No semicolon here!
 });
});
Ответ принят как подходящий

Это произойдет из-за того, что в новой версии PHP7 эти теги не поддерживаются. вы можете использовать стандартные теги вместо них, например или. Надеюсь, что это поможет вам. From PHP official Website

Спасибо! Это работает. Я написал себе записку от 2011, что <? не работает, только <? php. Я не знаю, что это все еще правда.

Roger 20.05.2018 17:13

Другие вопросы по теме