Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение информации в тегах META, изменение содержания META в HTML 
V
    Опции темы
perlweber
Дата 12.9.2006, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2006

Репутация: нет
Всего: нет



Хочу иметь у себя на сервере перловый скрипт, который бы изменял содержание в тегах META файлов HTML. Подскажите как проще двигаться, или помогите реальным примером кода. Благодарю.
PM MAIL   Вверх
korob2001
Дата 12.9.2006, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Не совсем понятен вопрос. Чуть подробнее если можно. 
Откуда берутся HTML? Генерит их программа или же они статические? Расположены они на этом же сервере, или же на удалённом?
Если приведёшь пример того, что нужно заменить и на что, то будет вообще замечательно.

Это сообщение отредактировал(а) korob2001 - 12.9.2006, 22:43


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
perlweber
Дата 13.9.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2006

Репутация: нет
Всего: нет



В файле HTML имеются META теги.

Код
<meta name='keywords' content='Ключевые слова'>


скрипт должен открыть файл по его имени и исправить строку "Ключевые слова" на другую строку.

Прошу заметить что ключевых слов может быть много и тег будет распологаться не в одной а в нескольких строках файла, например так:

Код
<meta name='keywords' content='Слово 1,Слово 2,Слово 3,
Слово 4,Слово 5,Слово 6,
Слово 7,Слово 8
Слово 9'>


Это сообщение отредактировал(а) perlweber - 13.9.2006, 10:23
PM MAIL   Вверх
nitr
Дата 13.9.2006, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



Привет ;)
script.pl
Код

#!/usr/bin/perl -w
use strict;

my $new_keywords = 'Привет, пока, здрасти'; #наши новые слова для замены ;)

#открываем и читаем файлик ;)
open my $flh, '<', "my.html"; #имя_файла замени на свой ;)
local $/;
my $content = <$flh>;
close $flh;

#рег.выражение (простое) для замены ;)
$content =~ s{(<meta\s+name=['"]keywords["']\s+content=['"]).+?(["']>)}{$1$new_keywords$2}smg;

#запись нового содержимого в этот же файлик
open $flh, '>', "my.html";
print $flh $content;
close $flh;


my.html
Код

<html>
<head>
    <title>Test</title>
    <meta name='keywords' content='Слово 1,Слово 2,Слово 3,
        Слово 4,Слово 5,Слово 6,
        Слово 7,Слово 8
        Слово 9'>
</head>
<body>
Perl :)
</body>
</html>


Добавлено @ 10:42 
можно так же так сделать
Код
#!/usr/bin/perl
use strict;

my $new_keywords = 'Привет, пока, здрасти'; #наши новые слова для замены ;)

#открываем и читаем файлик ;)
die "usage: script.pl file.html" unless $ARGV[0];
open my $flh, '<', $ARGV[0];
local $/;
my $content = <$flh>;
close $flh;

#рег.выражение (простое) для замены ;)
$content =~ s{(<meta\s+name=['"]keywords["']\s+content=['"]).+?(["']>)}{$1$new_keywords$2}smg;

#запись нового содержимого в этот же файлик
open $flh, '>', $ARGV[0];
print $flh $content;
close $flh;


и использовать script.pl имя_файла.html

Добавлено @ 10:45 
регулярку можно наворотить
Код

$content =~ s{(<\s*?meta\s+name\s*?=\s*?['"]\s*?keywords\s*?["']\s+content\s*?=\s*?['"]).+?(["']\s*?>)}{$1$new_keywords$2}smg;


Добавлено @ 10:47 
можно сделать и поиск файлов HTML в каталоге smile и т.д. и т.п.
пища для размышлений ;)


--------------------
PM   Вверх
perlweber
Дата 13.9.2006, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2006

Репутация: нет
Всего: нет



Ух как! Спасибо, всё работает!
PM MAIL   Вверх
perlweber
Дата 13.9.2006, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 12.9.2006

Репутация: нет
Всего: нет



А как будет выглядеть РВ для того, чтобы убрать из HTML кода весь тег META?
PM MAIL   Вверх
nitr
Дата 13.9.2006, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

Репутация: 37
Всего: 84



perlweber, 
$str =~ s/<\s*?meta.+?>//smgi;


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.