Avatar
Eldest
Redaktor
Avatar
Eldest:

Ahoj, mám toto pole smajlíků

public $smiles = array(1 => "o:)",":'(","8-|","3:)",":D",":P",":*",":3",";)",":(","8)",":/",">:-(","-_-",":v",":putnam:",":|]",":)","<3","^_^","<(\")","O.o",">:o",":o","(^^^)");

při výpisu z DB se pomocí preg_replace zkontroluje, jestli tam není nějaký smajlík. Pokud ano, nahradí se <img....

public function smiles ($obsah) {
                foreach($this->smiles as $key=>$item) {
                $obsah = preg_replace('.$item.','<img src="../images/smiles/smiles('.$key.').png" alt="'.$item.'">',$obsah);
                }
                return $obsah;
        }

Mám chyby asi v apostrofech apod., ale nevím si rady, jak je opravit

Editováno 30.10.2012 22:20
 
Odpovědět 30.10.2012 22:17
Avatar
Eldest
Redaktor
Avatar
Eldest:

Ovšem se omlouvám - preg_replace

 
Nahoru Odpovědět 30.10.2012 22:19
Avatar
Odpovídá na Eldest
David Jančík [sczdavos]:

Proč tak složitě?
Stačí ti pole, kde bude klíčem textová podoba smajlíku a hodnotou jméno souboru.
Pak použiješ str_replace, tam by mělo jít dát array_keys a array_values.

$emoticons = array(
   ':-)' => 'happy.png',
   ':-(' => 'sad.png',
);

str_replace(array_keys($emoticons), '<img src="../images/smiles/"' . array_values($emoticons) . '" />', $text);
Editováno 30.10.2012 22:52
Nahoru Odpovědět 30.10.2012 22:50
Čím více času dostaneš, tím méně ho máš.
Avatar
Eldest
Redaktor
Avatar
Eldest:

Ok, díky vyzkouším to.

 
Nahoru Odpovědět 31.10.2012 10:21
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 31.10.2012 16:30
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Eldest
Redaktor
Avatar
Eldest:

Nefunguje to. Nikdy to nenajde shodu, i když je jich tam spousta.

 
Nahoru Odpovědět 31.10.2012 16:31
Avatar
Eldest
Redaktor
Avatar
Eldest:

Už jsem asi našel chybu ve všech mých asi 50 variantách. Mohlo by to být tím, že jsem měl pole.

public $smiles = array(1 => ':)', ':D');

A teď, když jsem napsal toto, tak to funguje.

public $smiles = array(':)' => 1, ':D');
 
Nahoru Odpovědět 31.10.2012 16:44
Avatar
Odpovídá na David Čápka
David Jančík [sczdavos]:

Nad strtr jsem také přemýšlel. Ovšem to by tam musel jako hodnotu strkat celý tag img. Nebo tě napadá jak jinak to použít?

Edit: Jo teď koukám, že v tom manuálu to tak máš. A když nad tím přemýšlím, tak to vlastně ničemu nevadí. Jen se tam zbytečně duplikuje ten tag a ta hodnota je dlouhá.

Editováno 31.10.2012 17:04
Nahoru Odpovědět 31.10.2012 17:01
Čím více času dostaneš, tím méně ho máš.
Avatar
David Čápka
Tým ITnetwork
Avatar
Nahoru Odpovědět 31.10.2012 17:49
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.