Вставка значения переменной PHP в файл Javascript

У меня есть файл JavaScript с жестко закодированной переменной BASEURL, это значение затем используется другими функциями в файле. Я хотел бы, чтобы это значение URL было задано динамически, так что мне не нужно вручную изменять его для разных установок. Можно ли вставить значение переменной PHP в файл JavaScript?

Вместо того, чтобы пытаться смешивать PHP с файлами javascript, вот что я делаю в HTML-шаблоне:

<head> <script> var BASEURL = "<?php echo base_url(); ?>"; </script> <script src="/path/to/my_script1.js"></script> <script src="/path/to/my_script2.js"></script> </head> 

Это устанавливает переменную и позволяет всем вашим встроенным скриптам получить к ней доступ. base_url() будет заменен любым методом, который вы используете для получения базового url с PHP.

Предположим, у вас есть JS-файл, написанный «на лету» PHP; file1.php

 <?php header('Content-Type: application/javascript'); $var = $_GET['var1']; echo "jsvar = ".$var.";"; ?> 

Исходный код на стороне клиента file1.php? Var1 = 10 будет тогда

 jsvar=10; 

Существует несколько способов:

  1. Загрузите baseurl через AJAX, но, возможно, это замедляется, возможно, вам это нужно раньше.

  2. пусть javascript-файл работает через php-парсер. Затем вы можете использовать встроенные эхо.

  3. Самый удобный и простой способ – сделать <script>var baseurl = '...';</script> в выводе html / php вашей страницы.

Вам нужно будет сделать файл файлом php, а не js-файлом. Оттуда вы можете включить любые теги PHP в файл для работы с вашей динамической магией. Ключ, чтобы все это работало в заголовках, которые вам нужно будет задать так:

 <?php Header("content-type: application/x-javascript"); echo 'var js_var = ' . $php_var; ?> alert (js_var); 

Этот метод можно использовать и для файлов CSS.

Сегодня Heredoc работал на меня:

 <?php echo <<<ANYNAME <script LANGUAGE="JavaScript" type="text/javascript"> <!-- // code ... var myLatlng = new google.maps.LatLng($lat, $lon); // code cont. ... //--> </script> ANYNAME; ?> 

http://php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

php в html нет другого пути: <? php echo $ var; ?>