Jak udělat z textového smajla obrázkový

Jednoduchý návod jak si do guestbooku přidělat smajlíky nebo i formátování textu. Použijeme javascript a v php funkci str_replace();


Na JNW.com je to docela častý dotaz tak jsem se rozhodl udělat malý návod jak toho docílit.

Co použijeme?

  • Javascript na vložení smajla do pole
  • Funkci str_replace();

JavaScript

  • Tady místo formular dáte jméno formuláře.
  • Místo textarea dáte jméno textarey.
<script language="javascript" type="text/javascript">
<!--
function smajlik(text) {
if (document.formular.textarea.createTextRange && document.formular.textarea.caretPos)
{
  var caretPos = document.formular.textarea.caretPos;
  caretPos.text =  caretPos.textarea.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
}
else
   document.formular.textarea.value += text;
   document.formular.textarea.focus(caretPos)
}
//-->
</script>

Tímto kódem se text „:-)“ vloží po kliknutí do textarey:

<a href="javascript:smajlik(':-) ')">:-)</a>
<a href="javascript:smajlik(':-D ')">:-D</a>

Když kliknete na odkaz, tak se vloží do textarey smajl :-).

Jak bude vypadat formulář? Velmi zjednodušeně následovně.

<form action="#" method="POST" name="formular">
  <textarea rows="10" cols="50" name="textarea"></textarea>
  <input type="submit" name="Odešli"/>
</form>

str_replace();

Při zpracování skriptu ještě uděláme tuto funkci následovně:

<?php
/*
* POKRAČOVÁNÍ VE ZPRACOVÁNÍ - VE VAŠEM SKRIPTU
*/

$textstary = $_POST['textarea'];        // postneme si textareu
$text2 = wordwrap( $textstary, 50, "\n", 1);  // zabranime dlouhym slovum
$text3= htmlspecialchars($text2);     // odstanime nebezpecne znaky
$find=array                 // najdeme smajly
  (
  ":-)",
  ":-D"
  );

$replace_with=array     // zadame cim se maji nahradit
  (
  "<img src=\"obr/smajly/1.gif\" alt=\":-)\" />",
  "<img src=\"obr/smajly/2.gif\" alt=\":-D\" />"
  );

$text=str_replace($find, $replace_with, $text3);  //jiz avizovany str replace.



/*
* a pokracuje dale ve zpracovani, do db nebo do souboru ulozime $text.
* Proměnná $text tedy obsahuje již nahrazený text.
*/
?>

No a to by bylo celé. Stejně tak i lze udělat formátování textu jako mám já. [b] nahradím

<strong>

a tak dále…


<Starší | tento článek | Novější>

Napsáno: 27. 8. 2005, 00:00 | Přečteno: 16658x | Kategorie: PHP School | Napsal: peCan.cz |
Vrátí se postižené díte ze školy domu a chlubí se rodicum: Dnes prišel na návštevu pan školní inspektor a my jsme mu zpívali!Vážne? A jak na to reagoval? On plakal. Jak to? Co jste mu zpívali? Až nás bú-dou mi-li-óóó-ny...
Petr Graubner | ICQ- 264912843, Jabber - pecan27@njs.netlab.cz | RSS | Šlape na miniRS | Styl CoolStyle | Zpracováno za: 0.118s | Počet SQL dotazů ve fóru: 1 | Admin