PHP - nahrazení funkce

Lamer

PHP - nahrazení funkce
« kdy: 21. 12. 2014, 20:46:07 »
Ahoj, prosím o pomoc, snažím se už asi 3 hodiny nahradit starou funkci preg_replace() novou funkci preg_replace_callback() jelikož php mi vrací chybu
Kód: [Vybrat]
Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in ...
Použití staré funkce
Kód: [Vybrat]
echo preg_replace('/(?:^|-)([a-z])/e', 'strtoupper("$1")', $name);
Použití nové funkce (ale nefunguje to)
Kód: [Vybrat]
echo preg_replace_callback('/(?:^|-)([a-z])/e', 'strtoupper("$1")', $name);
Pomůže prosím někdo? Děkuji


Kit

Re:PHP - nahrazení funkce
« Odpověď #1 kdy: 21. 12. 2014, 20:56:25 »
Použití nové funkce (ale nefunguje to)
Kód: [Vybrat]
echo preg_replace_callback('/(?:^|-)([a-z])/e', 'strtoupper("$1")', $name);

Podle manuálu musí být jako druhý parametr funkce. Ty tam máš nějaký string.

Lamer

Re:PHP - nahrazení funkce
« Odpověď #2 kdy: 21. 12. 2014, 21:42:17 »
Ahpoj, a nevíš jak to opravit?

Kit

Re:PHP - nahrazení funkce
« Odpověď #3 kdy: 21. 12. 2014, 22:25:45 »
Podle manuálu by to mělo vypadat asi takhle
Kód: [Vybrat]
echo preg_replace_callback(
    '/(?:^|-)([a-z])/',
    function ($parametry) {
        return strtoupper($parametry[0]);
    },
    $name
);

Co to vlastně má dělat? Nevynalézáš nějaké kolo?

Kit

Re:PHP - nahrazení funkce
« Odpověď #4 kdy: 21. 12. 2014, 22:41:12 »
Nedělá náhodou tohle totéž?
Kód: [Vybrat]
echo ucfirst(preg_replace('/^-/', '', $name))


Lamer

Re:PHP - nahrazení funkce
« Odpověď #5 kdy: 22. 12. 2014, 00:39:43 »
Ahoj, díky za pomoc.

Co to vlastně má dělat? Nevynalézáš nějaké kolo?
Snad ne, potřebuji v řetězci převéct vždy první znak na velké písmeno a všechny první znaky za pomlčkami na velké písmena a ostranit všechny pomlčky. Máš lepší řešení ?

Kit

Re:PHP - nahrazení funkce
« Odpověď #6 kdy: 22. 12. 2014, 00:52:22 »
Ahoj, díky za pomoc.

Co to vlastně má dělat? Nevynalézáš nějaké kolo?
Snad ne, potřebuji v řetězci převéct vždy první znak na velké písmeno a všechny první znaky za pomlčkami na velké písmena a ostranit všechny pomlčky. Máš lepší řešení ?

Regulárním výrazům se raději vyhýbám, pokud to jde. Zkus tohle:
Kód: [Vybrat]
echo implode(' ', array_map('ucfirst', explode('-', $name)));

Lamer

Re:PHP - nahrazení funkce
« Odpověď #7 kdy: 22. 12. 2014, 01:02:24 »
Regulárním výrazům se raději vyhýbám, pokud to jde. Zkus tohle:
Já je přímo nesnáším, týden trvá než to funguje dle představ a pak potřebuješ něco opravit a děláš to od začátku znova :-(
Jdu to vyzkoušet, zatím díky

Re:PHP - nahrazení funkce
« Odpověď #8 kdy: 22. 12. 2014, 08:38:08 »
Ahoj, Deprecated, stejne jako treba Notice NEJSOU CHYBY. Chyba je Error.
Děkuji za možnost editace příspěvku.

Re:PHP - nahrazení funkce
« Odpověď #9 kdy: 22. 12. 2014, 10:06:01 »
Ahoj, Deprecated, stejne jako treba Notice NEJSOU CHYBY. Chyba je Error.

To mi pripomina tento vtip:
Chlap pofajcieva cigaretu a vyfukuje oblacky dymu. Jeho priatelka sa nastve a vravi mu:
"Nevidis, ze je na krabicke napisane varovanie, ze to skodi zdraviu?"
A chlap na to: "Laska, ja som programator, nas nezaujimaju varovania, len chyby..."