У меня есть файл JavaScript, где я хотел бы включить некоторый PHP-код. Проблема в том, что у меня есть несколько определений на PHP, которые я бы хотел использовать на JS.
Есть ли способ включить файл .js в HTML, позволяющий серверу сначала интерпретировать его (перед загрузкой на клиент) с помощью php?
Благодаря 🙂
<script src="/path/to/my/file.php"></script>
В file.php
вы также захотите вывести правильный заголовок, прежде чем вывести что-нибудь, что вы должны иметь следующее:
header("Content-Type: application/javascript");
EDIT: Как отметил @Tony_A, это должно быть application/javascript
. Я не думаю, что это имело значение, когда я писал этот пост в 2010 году 🙂
Конечно, проще всего сделать это js.php
файлом.
Если возможно, рассмотрите альтернативу: выберите PHP в JavaScript, прежде чем включать файл внешнего скрипта:
<script> define1 = <?php echo YOUR_DEFINE1; ?> define2 = <?php echo YOUR_DEFINE2; ?> </script> <script src="....."> // This script can now use define1 and define2
Таким образом, внешний JavaScript все равно может служить статическим контентом и не нужно запускать через PHP. Это менее ресурсоемкий.
Создайте php-файл с именем javascript-test.php
<?php header('Content-type: application/javascript'); $php = 'Hello World'; echo "alert('$php');"; ?>
И тогда ссылка на ваш php, как будто это файл javascript:
<script type="text/javascript" src="javascript-test.php" />
Если вам нужен ваш php-файл для расширения .js, это возможно в конфигурации вашего сервера.
Не проверено, но, вероятно, работает:
<script lang="text/javascript" src="path/to/your/script.php" ></script>
Попробуйте дать сценарий .php
качестве расширения файла.
Вы можете сделать это и на уровне сервера. Предположим, что вы используете apache, вы можете добавить эту строку в свою конфигурацию (даже ваш .htaccess будет делать):
AddType application/x-httpd-php .js
Вы также можете сделать это с помощью css или даже простых страниц html.
Я уверен, что другие серверные программы имеют схожие возможности.
<script> global_one = '<?php echo $global_one; ?>';</script>
<script> global_one = '<?php echo $global_one; ?>';</script>
Быстрый пример;) Если вы поместите это в свой html <head>
перед всеми другими файлами global_one
переменная global_one
будет доступна для всех js-файлов.
Да, просто напишите php-файл, который выводит JavaScript и включает его на вашу страницу, как обычно, например,
<?php $f=40; ?> <script type='text/javascript> var f=<?php echo $f;?>; </script>
Клиенту все равно, если файл сценария заканчивается на .js, .php или что-то еще, примерно на тип mime и содержимое.
Вы также можете использовать директивы Apache, возможно, в файле .htaccess, чтобы сообщить ему обрабатывать определенный .js-файл как PHP или напрямую запрашивать файл filename.js в filename.php, хотя это необязательно.