Intereting Posts
создание пользователей moodle и их программное программирование Как отфильтровать мои запросы доктрины с помощью Symfony ACL mysql + php извлекает листовые дети с помощью пути php 5.5.5 не работает с Apache 2.4.7 Когда мне следует возвращать true / false AJAX, и когда я должен эхо «true» / «false», PHP DateTime :: изменить время добавления и вычитания Как получить дочернее имя класса из родительского класса Изменение стилей div с использованием таймера javascript с разными интервалами Как PHPUnit проверить метод без возвращаемого значения? Как отправлять и получать данные с Visual Basic на PHP? Ajax отправляет данные, но php не получает Как преобразовать код JavaScript в его эквивалент PHP? Полезно ли использовать библиотеку Active Record для CodeIgniters для управления базами данных MySQL или просто использовать SQL? Испанские символы не отображаются правильно mb_detect_encoding обнаруживает ASCII как UTF-8?

Как я могу использовать php для заполнения файла manifest.json?

У меня есть файл manifest.json, который загружается правильно, когда помещается в корневой каталог моего wesite. Вместо того, чтобы быть статическим файлом, я хотел бы использовать php-переменные из моего сайта для заполнения значений внутри манифеста.

Я не могу найти никакой информации об этом в спецификации , и я не уверен, что это возможно.

Я попытался переключить имя своего манифеста на manifest.php и использовать header('Content-Type: application/json') внутри него.

Внутри моего файла файла индекса:

 <script src="<?php echo $SITE_URL;?>/main.js"></script> <script src="<?php echo $SITE_URL;?>/sw.js"></script> <link rel="manifest" href="<?php echo $SITE_URL;?>/manifest.php"> 

Внутри моего manifest.php:

 <?php header('Content-Type: application/json'); echo " { \"name\": \"$SiteName\", \"gcm_user_visible_only\": true, \"short_name\": \"$Name\", \"description\": \"$PageDescription.\", \"start_url\": \"/index.php\", \"display\": \"standalone\", \"orientation\": \"portrait\", \"background_color\": \"$darkblue\", \"theme_color\": \"#f0f0f0\", \"icons\": [{ \"src\": \"logo-load.png\", \"sizes\": \"96x96 128x128 144x144\", \"type\": \"image/png\" },{ \"src\": \"logo-icon.png\", \"sizes\": \"48x48 72x72\", \"type\": \"image/png\" }] } "; ?> 

Переменные $SiteName, $Name, $PageDescription, $darkblue, etc Все определены в моей голове документа до загрузки manifest.php.

Является ли то, что я пытаюсь сделать возможным?

Главный вопрос: где эти постоянные? Иногда люди устанавливают их на уровне сервера и импортируют их ( переменные среды ). Другой вариант (вроде размытия с тем, что вы делаете) заключается в анализе файла INI .

Я бы сделал следующее:

 <?php $siteName = 'foo'; $name = 'bar'; $pageDescription = 'baz'; $manifest = [ "name" => $siteName, "gcm_user_visible_only" => true, "short_name" => $name, "description" => $pageDescription, "start_url" => "/index.php", "display" => "standalone", "orientation" => "portrait", "background_color" => $darkblue, "theme_color" => "#f0f0f0", "icons" => [ "src" => "logo-load.png", "sizes"=> "96x96 128x128 144x144", "type" => "image/png" ], "src" => "logo-icon.png", "sizes" => "48x48 72x72", "type" => "image/png" ]; header('Content-Type: application/json'); echo json_encode($manifest);