Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

HTML Parse. Помогите советом!

1.9K
13 сентября 2003 года
Gandalf0
27 / / 16.03.2003
Добрый день!
У меня есть следующая задача:
необходимо из корневого каталога Web-приложения открыть htm-файл (например статья), который находиться в поддерриктории, и вывести его в поток HTML.
Возникла следующая проблема: в этом файле есть ссылки на картинки, которые находятся с ним в одной дирректории, при выводе этого файла в поток HTML из корневого каталога наступает конфликт ссылок, например в статье указано

а для корректного отображения необходимо

т.е. перед выводом надо дописать путь к поддирректории во всех тегах <img>

Самому писать анализатор HTML не хочеться.
У меня есть решение использовать XML парсер, он он както не в тему...

Может кто посоветует каким html-парсер можно воспользоваться? Или как можно использовать mshtml.dll в скрипте на стороне сервера?

Заранее благодарен!
283
13 сентября 2003 года
Alone
910 / / 20.11.2002
для начало попробуй это
<base href="http://www.codenet.ru/images/">

<base href="">
1.8K
13 сентября 2003 года
2NetFly
132 / / 01.09.2003
Alone хорошую идею подал.

Если все таки хочется менять ссылки.. никаких парсеров не нужно. Задача решается в одно регулярное выражение.
1.9K
14 сентября 2003 года
Gandalf0
27 / / 16.03.2003
Цитата:
Originally posted by Alone
для начало попробуй это
<base href="http://www.codenet.ru/images/">

<base href="">



Почти то что нужно. Но насколько я понял тег <base> применяеться для всех URL после следующих после него, но мне ненужно менять ссылки, а только урлы в src картинок и скриптов.
Конечно можно писать перед ссылками другой <base> но это изврат какойто, либо в ссылках вместо
href="index.asp?..."
прописывать
href="http://servername/index.asp?..."
а ето не совсем красиво получаеться и скорее всего неприемлемо...

Может есть другой способ или я чтото упустил?

1.9K
14 сентября 2003 года
Gandalf0
27 / / 16.03.2003
Цитата:
Originally posted by 2NetFly
Alone хорошую идею подал.

Если все таки хочется менять ссылки.. никаких парсеров не нужно. Задача решается в одно регулярное выражение.



Интересная идея. Не могбы подсказать как для этого регулярное выражение составить?

1.8K
14 сентября 2003 года
2NetFly
132 / / 01.09.2003
Perl:
#!/usr/bin/perl
my $path = "TestDir/";
my $content = q{

<img src= test.jpg >


};
$content =~ s/(<img[^>]+src\s*=['"\s]*)([^'">\s]+)/$1$path$2/sig;
print $content;

Должно заменять путь во всех рисунках (с верно оформленным HTML кодом). Регулярное выражение (с некоторыми изменениями) будет работать в любом языке, который поддерживает РВ с обратными ссылками.
1.9K
16 сентября 2003 года
Gandalf0
27 / / 16.03.2003
Биг фенкс! Теперь разобрался
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог