Анализ файла JavaScript через PHP

У меня есть файл 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, хотя это необязательно.