Witam. Potrzebuję napisać funkcję, która będzie wykonywać dane fukcje na ciągu:

- nie pozwalała, aby dwie emotikony były obok siebie, np smile.gif smile.gif
- skracała emotikony, jak ktoś napisze np. '::: DDDDDD', żeby zamieniało na ':D'
- zamieniała słowa zaczynające się na http:// lub www na aktywne linki

Już zacząłem pisać funkcję, rozbija ona ciąg na słowa. O ile zamiana linków na aktywne to pestka, to już przy operacjach na emotach zaczyna się wszystko sypać. Oto kod

  1. <?php
  2.  
  3. function convert_txt($txt) {
  4. $slowa = explode(' ', $txt);
  5. $i = 0;
  6. foreach($slowa as $slowo) {
  7. $i++;
  8. $slowo = trim($slowo);
  9. if(ereg('^http://(.)+', $slowo))
  10. @$tekst .= '<img src="img/www.gif" alt="www" /> <strong><a href="'.$slowo.'" target="_blank">www</a></strong> ';
  11. elseif(ereg('^www(.)+', $slowo))
  12. @$tekst .= '<img src="img/www.gif" alt="www" /> <strong><a href="http://'.$slowo.'" target="_blank">www</a></strong> ';
  13. elseif(ereg('[:;x]+', $slowo) && ereg('[)(]', $slowa[$i]))
  14. @$tekst .= substr($slowo, 0, 1).substr($slowa[$i], 0, 1);
  15.  elseif(ereg('[a-zA-Z]+', $slowo))
  16. @$tekst .= $slowo.' ';
  17. }
  18. return $tekst;
  19. }
  20.  
  21. $tekst = "Otłąo moja strona domowa <a href="http://forum.php.pl" target="_blank">http://forum.php.pl</a> ::: [[[[";
  22.  
  23. echo convert_txt($tekst);
  24.  
  25. ?>


Chyba nie tędy droga.. Proszę o pomoc.