HTML Parse. Помогите советом!
У меня есть следующая задача:
необходимо из корневого каталога Web-приложения открыть htm-файл (например статья), который находиться в поддерриктории, и вывести его в поток HTML.
Возникла следующая проблема: в этом файле есть ссылки на картинки, которые находятся с ним в одной дирректории, при выводе этого файла в поток HTML из корневого каталога наступает конфликт ссылок, например в статье указано
а для корректного отображения необходимо
т.е. перед выводом надо дописать путь к поддирректории во всех тегах <img>
Самому писать анализатор HTML не хочеться.
У меня есть решение использовать XML парсер, он он както не в тему...
Может кто посоветует каким html-парсер можно воспользоваться? Или как можно использовать mshtml.dll в скрипте на стороне сервера?
Заранее благодарен!
<base href="http://www.codenet.ru/images/">
<base href="">
Если все таки хочется менять ссылки.. никаких парсеров не нужно. Задача решается в одно регулярное выражение.
Цитата:
Originally posted by Alone
для начало попробуй это
<base href="http://www.codenet.ru/images/">
<base href="">
для начало попробуй это
<base href="http://www.codenet.ru/images/">
<base href="">
Почти то что нужно. Но насколько я понял тег <base> применяеться для всех URL после следующих после него, но мне ненужно менять ссылки, а только урлы в src картинок и скриптов.
Конечно можно писать перед ссылками другой <base> но это изврат какойто, либо в ссылках вместо
href="index.asp?..."
прописывать
href="http://servername/index.asp?..."
а ето не совсем красиво получаеться и скорее всего неприемлемо...
Может есть другой способ или я чтото упустил?
Цитата:
Originally posted by 2NetFly
Alone хорошую идею подал.
Если все таки хочется менять ссылки.. никаких парсеров не нужно. Задача решается в одно регулярное выражение.
Alone хорошую идею подал.
Если все таки хочется менять ссылки.. никаких парсеров не нужно. Задача решается в одно регулярное выражение.
Интересная идея. Не могбы подсказать как для этого регулярное выражение составить?
#!/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 кодом). Регулярное выражение (с некоторыми изменениями) будет работать в любом языке, который поддерживает РВ с обратными ссылками.
Биг фенкс! Теперь разобрался