Как изменить все пути ресурсов в файле html/php при его включении?

Это немного сложно объяснить, но я попробую. Допустим, у меня есть это в заголовке файла HTML с именем myFile.html:

<!doctype html>

<head>

<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/style.css" />
<script src="js/hovers.js"></script>
<link rel="stylesheet" href="css/highlight.css">

</head>

Теперь я хочу включить этот файл в файл php, скажем, index.php. Однако все мои активы (css, js и т. д.) хранятся в папке с именем assets/.

После включения (или до?) этого html-файла есть ли способ изменить все пути ресурсов, чтобы они указывали на assets/*. Например, «css/reset.css» будет изменено на «assets/css/reset.css» и так далее. Обратите внимание, что это не ограничивается только этими строками в заголовке, но также включает такие вещи, как элементы изображения и т. д.

Если это сбивает с толку, дайте мне знать, и я попытаюсь объяснить снова!

Ваше здоровье :)


person chintanparikh    schedule 29.03.2012    source источник


Ответы (1)


Я обычно определяю константу для подобных вещей, затем ее легко изменить через файл конфигурации. Это означает просмотр ваших файлов шаблонов и добавление этой постоянной переменной, но после этого ее становится очень легко изменить.

Итак, ваш файл будет примерно таким:

<?php
require_once('config.php');
include('header.php');

config.php будет примерно таким:

<?php
define('ASSETS_ROOT','/assets/');

и header.php будет таким:

<!doctype html>

<head>

<link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/reset.css" />
<link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/style.css" />
<script src="<?php echo ASSETS_ROOT; ?>js/hovers.js"></script>
<link rel="stylesheet" href="<?php echo ASSETS_ROOT; ?>css/highlight.css">

</head>
person Nick    schedule 29.03.2012
comment
Я думал об этом, я надеялся, что может быть другой путь, но, похоже, нет. Спасибо! - person chintanparikh; 29.03.2012
comment
Я думаю, вы могли бы сделать это с помощью буферов и регулярных выражений или синтаксического анализатора html, но эти методы будут очень запутанными. - person Nick; 29.03.2012
comment
Согласен, гораздо чище просто использовать константу :) - person chintanparikh; 29.03.2012