Автор Тема: Perl vs Смайлики  (Прочитано 3138 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« : 16 Декабря 2003, 10:55:06 »
Есть написанный мною код:
my %SM=();
my $result=$dbh->prepare("select * from smiles");        
$result->execute();
while (my $ln = $result->fetchrow_hashref())
 {
   $SM{$ln->{\'text\'}}="$ln->{\'file\'}:$ln->{\'alt\'}";
 }

while (my($k,$v)=each(%SM))
 {
   my($f,$a)=split(":",$v);
   $im="\'$a\'";
   $TEXT =~ s/$k/$im/;    
 }

Не работает!!! :-( В чем моя ошибка! Может кто подскажет более правильный и быстрый способ замыны  смайликов картинками!!!

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« Ответ #1 : 16 Декабря 2003, 11:26:05 »
Что пишет? Какие записи в логах? strict, warnings включены? в предпоследней строке изпользуй метасимвол \\Q в рег. выр. Покажи, что выходит в переменной $im. В конце концов попытайся правильно изложить задачу.
0 OK, 0:1

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« Ответ #2 : 16 Декабря 2003, 11:46:06 »
В том то все и дело что НИЧЕГО!!! Скрипт просто вешается на
$TEXT =~ s/$k/$im/;

Если заремить выполняется но естественного ничего не меняет!
$im все нормально возвращает!

Задача: Скрипт пр попытке замены смайлов на картинки просто вываливается, т.е. В начале скрипта у меня вывод заголовка HTTP а в конце вывод результата скрипта до конца просто не доходит вешается на см выше ....

....
my $T;
print Header();
...
...
$T .= "....";
...
...
print $T;

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« Ответ #3 : 16 Декабря 2003, 11:54:54 »
Повторюсь:

Цитировать
ondr:
в предпоследней строке изпользуй метасимвол \\Q в рег. выр.


$TEXT =~ s/\\Q$k/$im/;
0 OK, 0:1

Оффлайн FANTAzeRus

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 93
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« Ответ #4 : 16 Декабря 2003, 16:15:24 »
Пасиб! Усе заработало! А можно небольшой ликбез - что это и как лечит???

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
Perl vs Смайлики
« Ответ #5 : 16 Декабря 2003, 16:21:15 »
Это экранирование всего нехорошего, что лежит в переменной $k - в твоём случае.

Вообщем все тут - perldoc perlre
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28