Регулярные выражения, но попроще.

Sash [None]

Новичок
Регулярные выражения, но попроще.

Вот надо мне в тексте самайлики на картинки заменить, есть ли вариант, как сделать это меньшими объёмами кода?
И да, вот ещё вопрос, как обозначить перенос на следующую строчку. Т.е. что я должен поставить в первые кавычки, что бы потом заменить это на <br>?

PHP:
<?php echo "$text <p>"; $text=ereg_replace("(\:\-\))|(\:\))", "<img src=\"1.gif\">", "$text"); $text=ereg_replace("(\;\-\))|(\;\))", "<img src=\"5.gif\">", "$text"); $text=ereg_replace("(\:\-\()|(\:\()", "<img src=\"2.gif\">", "$text"); $text=ereg_replace("(\%\-\))", "<img src=\"c.gif\">", "$text"); $text=ereg_replace("(\:\-\D)", "<img src=\"4.gif\">", "$text"); $text=ereg_replace("(\:\*\()|(\:\`\()|(\:\'\()", "<img src=\"d.gif\">", "$text"); $text=eregi_replace("(\:\-\o)|(\:\-\о)", "<img src=\"3.gif\">", "$text");  $text=ereg_replace("(\:\-\Q)", "<img src=\"q.gif\">", "$text"); $text=eregi_replace("(\:\-\s)", "<img src=\"s.gif\">", "$text"); $text=eregi_replace("(\:\-\y)|(\:\-\у)", "<img src=\"y.gif\">", "$text"); $text=eregi_replace("(\:\-\p)|(\:\-\р)", "<img src=\"6.gif\">", "$text"); $text=ereg_replace("(\:\-\Е)|(\:\-\E)", "<img src=\"9.gif\">", "$text");  $text=ereg_replace("(\:\-\H)|(\:\-\Н)", "<img src=\"h.gif\">", "$text"); $text=ereg_replace("(\:\-\K)|(\:\-\К)", "<img src=\"k.gif\">", "$text"); $text=ereg_replace("(\:\-\L)", "<img src=\"l.gif\">", "$text"); $text=ereg_replace("(\:\-\N)", "<img src=\"n.gif\">", "$text");  $text=ereg_replace("(\:\-\Z)", "<img src=\"z.gif\">", "$text"); $text=ereg_replace("(\8\-\))", "<img src=\"7.gif\">", "$text"); "$text");echo "$text <p>";?>
 

Sash [None]

Новичок
to Demiurg: и с РНР тоже не очень :( Что такое [rm] и [mr] - прости за назойливость...
 

Апокалипсис

Guest
Лучше делать так допустим код смайла _1_ где 1 - имя файла смайлика, потом обрабатывать регулярным выражением.
P.S. Это будет всего одна строка кода :D
 

Sash [None]

Новичок
Так у меня этих смайликов чемодан, штук десять. А ставятся они как тут двоеточие+скобка, ну или там другие комбинации.
 

Sash [None]

Новичок
вот ответ на один из моих вопростов.
$txt = preg_replace("/(\015\012)|(\015)|(\012)/","<br />",$txt);
На счёт переноса на другую строчку... только почему "<br />" именно так написан? не понимаю.
 

Апокалипсис

Guest
Ну тогда чтобы уменьшить код можно сделать так

$arrr=array(":)"=>"<Img src=\"img\1.gif\" border=0>... и т.д.

Потом обработать [m]strtr[/m]
 

Demiurg

Guest
>вот ответ на один из моих вопростов.
это не ответ, это из пушки по воробьям.

Апокалипсис, str_replace может принимать и массивы.
 

Sash [None]

Новичок
to Demiurg, а почему :( я ж не знаю как лучше, посмотрел в мануале, вроде работает. А как лучше было бы?
 

Sash [None]

Новичок
to Demiurg, так вроде бы её и смотрел, пролистал пониже вот этот пример и нашел...

зы: тут чат надо сделать... или он есть??
 

Sash [None]

Новичок
Знаю, что вопрос не совсем в тему, но подскажите пожалуйста, мне из бд MySQL надо выбрать последние 10 строк, как это сделать? Причём, в обратном порядке. Т.е. первой строкой должна оказаться последняя запись... Ну короче обычная гостевушка. :)
 
Сверху