Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Emotikony
kamil1114
post
Post #1





Grupa: Zarejestrowani
Postów: 117
Pomógł: 0
Dołączył: 22.02.2008
Skąd: katowice

Ostrzeżenie: (0%)
-----


Chciałbym napisać skrypt , który zamieniałby na przykład treść ":-)" na buźkę (IMG:style_emoticons/default/snitch.gif)
Oczywiście tych buziek i komend byłoby znacznie więcej.
Jak myślicie , zrobić to w mysql'u ? Czy normalnie w php ? Ma ktoś jakiś pomysł ? Myślałem , żeby napisać mocno rozbudowaną funkcję if.

Ten post edytował kamil1114 22.10.2009, 22:34:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
drake88
post
Post #2





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

Ostrzeżenie: (0%)
-----


Zapraszam do lektury mojego tutoriala z innego forum.

Skrypt, który przedstawię będzie zamieniał emotikony tekstowe na obrazkowe. Musimy ustalić zmienną dla katalogu emotek, najlepiej bezwzględną:

Kod
<!-- config.php -->
<?php
    $sc = '/usr/krasnal/www/skrypty/moje/buzki/';
$format = 'gif';


Teraz zainicjujemy tabelę gdzie będziemy przechowywać nazwy plików z emotkami.

Kod
   $buzki = array(
    "smile" => '/:\)/',
    "sad" => '/:\(/',
    "happy" => '/:D/',
    );
?>


Trzeba pamiętać, iż podajemy same nazwy (bez rozszerzeń). Zapisujemy owy plik jako config.php
Określamy teraz właściwości odpowiadającego zmiennym w konfiguracji:

Kod
<?php
    class Buzki
    {
        var $sciezka;
        var $buzki;
        var $format;
var $pliki;


Zamieniamy tablicę z emotami tak, by wartości zawierały indeksy a indeksy wartości (funkcja array_flip())

Kod
function sciezki( $tablica )
        {
            foreach( $tablica AS $index => $wartosc ) {
                $gotowa[] = '<img src="' . $this -> pliki . $wartosc . '.' . $this -> format . '">';
            }
            return $gotowa;
        }


Wynik zostaje zapisany w tablicy $gotowa, jednak trzeba dołączyć plik konfiguracyjny i przypisać wartości jego zmiennych.

Kod
function Buzki()
        {
            include( './config.php' );
            $this -> sciezka = $sc;
            $this -> format = $format;
            $this -> buzki = $buzki;


Zadbać też trzeba o przygotowanie znaczników:

Kod
   $this -> pliki = $this -> sciezki( array_flip( $buzki ) );
        }


Skorzystamy teraz z preg_replace() który zamienia pasujące wartości z jednej tablicy odpowiednikami z drugiej.

Kod
  function zamien( $tekst )
        {
            $wynik = preg_replace( $this -> buzki, $this -> pliki, $tekst );
            return $wynik;
        }    
?>


Zapisujemy jako buzki.php
Teraz, aby użyć naszej klasy w skrypcie musimy ją dołączyć:

Kod
include('buzki.php');


Plik buzki.php musi zmienić ścieżkę pliku konfiguracji na ten sam katalog:

Kod
include( './buzki/config.php' );


Pozostało utworzenia egzemplarza klasy:

Kod
$buzki = new Buzki;
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 15:22