Forum Webscript.Ru

Программирование => Perl => Тема начата: Отец Никон от 17 Января 2003, 19:14:57

Название: Тэги в сообщении форума 3
Отправлено: Отец Никон от 17 Января 2003, 19:14:57
Вроде бы ясно, как удалить тэги из текста:
$post=~s/$post=~s/>/>/g;

Но как сделать, чтобы некоторые тэги игнорировались? Если это простые тэги, типа , то я думаю сделать просто:
$post=~s/<B>//g;  
Но как быть, например, с тэгом ? Ведь внутри его могут быть какие-то атрибуты (напр. ) и простой заменой не обойтись.

И ещё: как сделать, чтобы URL-ы выделялись тэгом ?
Название: Тэги в сообщении форума 3
Отправлено: NeoNox от 17 Января 2003, 19:36:34
$post=~s/<FONT (.*)>//gi;
А вообще купи книжку MRE или на сайтах поищи
Название: Тэги в сообщении форума 3
Отправлено: NeoNox от 17 Января 2003, 19:40:22
Хозяйке на заметку
Заменяем теги
sub html_encode {
  my ($object, $tmp) = @_;
  $tmp =~ s!&!&!g;
  $tmp =~ s!>!>!g;
  $tmp =~ s!  $tmp =~ s!\\"!"!g;
  return $tmp}
Убираем их вообще (работает не по условию а как каток)
sub clearHTML {
my ($object, $Tmp) = @_;
$Tmp =~ s/<.+?>//g;
return $Tmp}
Перекодируем в одну и другую сторону:

sub unHTML {
    my ($object, $Tmp) = @_;
    my %ENT=(\'<\'=>\'lt\',\'>\'=>\'gt\',\'"\'=>\'quot\');
    $Tmp =~ s!([<>"])!&$ENT{$1};!g;
    $Tmp =~ s||-->|g;
    $Tmp =~ s|