2011-01-20 5 views
2

Я пытаюсь понять, как маскировать путь по относительным путям. Это настраиваемый скрипт minifier, который я реализую для файлов CSS, и должен абсолютный относительный путь.preg_replace() относительные пути к абсолютному пути. (Masking?)

Так сказать, у меня есть следующее в файле CSS url('../images/file.jpg') Этот файл находится в каталоге /application/module/assets/css/theme.css, это означает, что новый путь в файле CSS должен быть /application/module/assets/images/file.jpg.

Теперь говорят, что есть CSS файл в /application/plugins/pluginName/assets/css/plugin.css и ссылки на ../../../../module/assets/images/image.jpg, замененный путь должен был бы быть /application/module/assets/images/file.jpg

Так я и спрашиваю, есть хорошая установка preg_replace я могу использовать, чтобы сделать это:

str_replace('../', '/path/to/file/', $file); 
str_replace('../../', '/path/to/', $file); 
str_replace('../../../', '/path/', $file); 

Надеемся, что это имеет смысл ...

С уважением,
Эндрю

+0

Две мысли: «Минитированная» версия на самом деле не короче, и это скорее компилятор, чем мини-инструмент, поскольку он изменяет то, что на самом деле делает CSS. Это просто кажется более трудным, чем для меня. (What * is * it worth?) – deceze

ответ

1

Я также не могу понять, что вы делаете, но, возможно, PHP-функция «realpath» - ваш друг.

+0

Кроме того, если вам нужен каталог, в котором находится файл: 'dirname (realpath ('./ filename.php))' – Niloct

Смежные вопросы