Intereting Posts
Использование Google-аккаунта для входа в систему PHP Передача по ссылке в foreach Поверните текст после слэшей в переменные с помощью HTACCESS Как сохранить php-файл как расширение .php или .html? Memcached :: getStats не работает с Couchbase Сохранение содержимого nicedit textarea в базе данных mysql WooCommerce: нужен крючок, когда администратор вручную создает заказ PHP: Лучший способ проверить, является ли ввод допустимым числом? Как предоставить печать на принтер в PHP-Gtk? Как создать собственный URL-адрес, основанный на выпадающем списке WordPress-form PHP $ GLOBALS Предложение Рассказывать доктрину о том, как форматировать DateTime при использовании собственного запроса и отображения результатов Повторное сопоставление нескольких строк несколько раз PHP – получение значка сайта и преобразование его в png при необходимости Регулярное выражение: найдите элементы, обернутые специальными селекторами

PHP – генерация JavaScript

Я работаю над проектом, в котором много JavaScript. Я думаю, что генерировать простые строки и помещать их между тегами <script> – это не лучший способ сделать это.

Существуют ли какие-либо более эффективные подходы к созданию объектов JavaScript, функций, вызовов и т. Д.? Может быть, некоторые конверсионные классы (от PHP до JavaScript) или, возможно, есть шаблоны проектирования, которые я должен соблюдать?

PS. Если это имеет значение – я использую MooTools с MochaUI (с MochaPHPControl).

Заранее спасибо за помощь.

    Лучший подход – подумать Javascript как PHP-код.

    Основные этапы:

    1. Создайте файл .htaccess, который перенаправляет все файлы JS (.js) в индексный файл.
    2. В этом файле индекса загружается JS-файл в виде PHP-модуля ( require "script/$file" )
    3. Измените все файлы JS по мере необходимости. Теперь вы можете встроить PHP-код.

    Например, добавьте в свою .htaccess эту строку:

     RewriteRule \.js$ index.php 

    В вашем файле index.php поместите что-то вроде этого:

     // Process special JS files $requested = empty($_SERVER['REQUEST_URI']) ? "" : $_SERVER['REQUEST_URI']; $filename = get_filename($requested); if (file_ends_with($requested, '.js')) { require("www/script/$filename.php"); exit; } 

    И, наконец, в файле file.js.php вы можете встроить PHP, использовать параметры GET и POST и т. Д .:

     <?php header("Content-type: application/x-javascript"); ?> var url = "<?php echo $url ?>"; var params = "<?php echo $params ?>"; function xxxx().... .... 

    Кроме того, трюк для пропуска кеша файлов заключается в том, чтобы добавить случайное число в качестве параметра javascript:

     <script type="text/javascript" src="scripts/file.js?a=<?php echo rand() ?>"></script> 

    Кроме того, как сказано в комментарии, если ваш веб-сервер не позволяет изменять .htaccess , вы можете просто запросить непосредственно файл PHP:

     <script type="text/javascript" src="file.php"></script> 

    Я пытался сделать свой сервер вызовом API и встроить его в html, чтобы иметь javascript-процесс. Конечно, поставьте все, что хотите, в эхо.

     <?php // a_local_file.php Header("content-type: application/x-javascript"); echo file_get_contents('http://some_remote_script'); ?> 

    И используйте это, чтобы ссылаться на него в HTML …

     <script type="text/javascript" src="a_local_file.php"></script> 

    Вызов api должен возвращать действительный javascript, в противном случае добавить то, что вам нужно, чтобы сделать его действительным; это часто неприятная часть работы с json из вызовов api. Может быть полезно использовать строчки, обрезки и другие строковые функции .. но часто надоедливые инопланетные символы просачиваются и могут устанавливать ошибки php на основе вашей настройки php.

    Вы можете проверить json_encode и json_decode .