Здравствуйте.
Стоит задача создать на сервере файл с расширением .js
Содержание файла javascript должно формироваться на основе некоторых данных из PHP.
Примерно как-то так:
Есть определённое значение, которое можно получить только при помощи PHP и оно меняется каждый сутки. Как курс валют, к примеру. Нужно чтобы на сервере каждый день генерировался файл .js содержащий js-скрипт получающий это каждый день новое PHP значение. Чтение комментариев этой статьи http://habrahabr.ru/post/139154/ подсказало, что можно генерировать файл кроном. Но подскажите, пожалуйста, как именно это происходит. Опыта работы с крон ноль. Не могли бы привести пример создания файла кроном?
Если описывать задачу в полной мере - то не нужно каждый день делать отдельный файл. Нужно чтобы оно перезаписывало содержание каждый день в одном и том же файле.
PS: Способы описанные в теле самой статьи (http://habrahabr.ru/post/139154/) не подходят. PHP значение берётся с одного сайта, а JS файл будет встраиваться в другие сайты (без поддержки PHP).
Заранее благодарю всех за любую помощь и наводки.
Комментарии
А почему не сделать статичный js, который за обновляемыми данными будет обращаться к серверу, где php будет отдавать их в json формате например?
Да.. подход, конечно, интересный..
Даю на водку : Карта сайта, sitemap, xml sitemap
Можно еще посмотреть, как реализована агрегация JS в самом Drupal.
https://api.drupal.org/api/drupal/modules!system!system.api.php/function...
https://www.drupal.org/project/xmlsitemap
Всем спасибо.
Пошёл углубляться.
Для моей задачи действительно оказалось куда проще использовать json чем разбираться с cron.Никогда ранее не работал с json - поэтому и не рассматривал его, как возможный вариант.
А статья с хабра вообще убедила, что ужасы по переписыванию парсера сервера это самый разумный вариант, поэтому я ухватился за cron как за спасительный круг ))
Не знаю, можно ли здесь как то поблагодарить автора полезного комментария плюсом, но в любом случае искреннее спасибо и лучи добра, unome.
Остальным, попытавшимся помочь с моей задачей именно так, как я её описал - тоже большое спасибо!
Хватить начал раньше времени ))
Подход с json не работает. Скрипт PHP отдающий на значение и скрипт JS принимающий значение на сайте 1, а вот сам скрипт JS планируется использовать на сайте 2. Встраивание скрипта в сайт 2 не позволяет получать то нужно значение путём запроса к php скрипту (разные домены и всё такое).
PS: сайт 2 не поддерживает PHP, чтобы самостоятельно запросить PHP значение с того сайта. Потому и нужна вся эта история.
Схемку что ли нарисуйте.. очень плохо понятно что нужно..
Такое ощущение, что есть до ужаса простое решение - но конечная цель почти не понятна.-)
1. Есть сайт 1. Он генерирует определённое PHP значение переменной. Значение каждые сутки обновляется.
2. Есть сайт 2. На нём нужно использовать значения с сайта 1. Этот сайт не поддерживает PHP.
Текущее решение, которое почти доделал:
На сайте 1:
- создал пустой файл JS
- создал файл php, который через fopen() прописывает в JS файл JS-функцию, которая возвращает это самое значение (в JS функцию подставляется PHP переменная).
- файл php помещу в крон с обновлением раз в сутки.
На сайте 2 (и на любом другом):
- подключаем JS файл с сайта 1 и выполняем функцию.
Таким образом я смогу подключать файл JS к любым сайтам без поддержки PHP и использовать это значение с сайта 1, так как оно будет каждый день актуальное в самом JS файле, а не пытаться получить его запросом по JSON во время исполнения скрипта (что невозможно из за политики разных доменов).
Действительно громоздко получается. Если есть вариант проще, буду только рад.
Не стоит списывать json
Внимание на "Access-Control-Allow-Origin", это будет работать в современных браузерах. Нужно чтобы работало в старых - используйте jsonp. А можно и целиком ваш js файл генерировать влет, ни каких ограничений на использование js с других доменов нет.