Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Изменить HREF, SRC, ACTION и т.д.


Автор: AztEK 25.11.2005, 18:13
Извините, если такая тема уже была...Не нашёл...
Проблема в следующем:
Есть HTML код со ссылками относитьно вложенной директории скрипта.
Скрипт должен пробежать его и выдать страницу со ссылками (и всем прочим) уже относительно каталога со скриптом...Как?

Автор: -=Ustas=- 25.11.2005, 20:31
Вопрос не ясен. Хотелось бы подробней...

Автор: Mal Hack 25.11.2005, 21:15
Ну preg_replace и вперед. Находишь: HREF, SRC, ACTION и заменяешь на то что нашел + свой путь.

Автор: MuToGeN 25.11.2005, 21:17
Насколько понял, оно решается средствами html:
Код

<head>
<base href="http://domain.com/dir/subdir/" />
</head>

Автор: AztEK 12.12.2005, 16:07
MuToGeN хороший способ, но до меня только сейчас дошло, что он мне не годится.
Пишу движок для сайта, нужно чтобы каждый сменный модуль генерировал ссылки на свои картинки и формы, а хочеца при написании их использовать ссылки относительно папки с модулем.
Так вот...

Автор: zlodeydunkan 13.12.2005, 13:11
Насколько я понял задача такая: Создание модуля с вводом имени модуля.
Если правильно понял, я делал так:
1. В файле(ах), которые будут составляющим будущего модуля, вставлял некий ключ,начинающийся с символа # (например, #key1).
2. Потом копировал, назавем инсталляционный, файл в необходимую директорию (например moduls) и там уже редактировал его при помощи preg_replace:
Код

$fc=file($name_mod."/имя_файла");

$f=fopen($name_mod."/имя_файла","w");

foreach($fc as $line)
{
$line1=preg_replace($key,$key1.$key2,$line);

           fputs($f,$line1);
}
fclose($f);

,где $name_mod - имя папки с модулем(если нужно, в вашем случае папка с картинками);
$key - что меняем;
$key1.$key2 - на что меняем.

Пример
Код

$key   =  "/#name_mod/";
$key1 = $name_mod;
$key2 = "#name_mod";

Что меняем обязательно должен быть с обратными слешами.

Автор: AztEK 15.12.2005, 21:21
zlodeydunkan
А если нужно будет подключить модуль или шаблон уже после инсталляции?
В любом случае всё упирается в preg_replace smile не хочу я его - топорный какой-то способ.
Мож mod_rewrite?

Автор: AztEK 20.12.2005, 20:57
Никто не знает? smile
А вы как модули делаете?
Как эту проблему решаете?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)