Portál AbcLinuxu, 11. května 2025 06:58

Dotaz: PHP - Jak na velké znaky

25.3.2014 15:11 Páťák
PHP - Jak na velké znaky
Přečteno: 370×
Odpovědět | Admin
Dobrý den. Začínám se seznamovat s PHP a narazil jsem na jeden mnou neřešitelný problém, proto se zkusím obrátit zde. Mám naplněnou proměnnou
$var = 'moje-hracka';
$var = 'moje-mala-hracka';
$var = 'moje-mala-hracka-drevena';
ale potřeboval bych opravit obsahy proměnné na MojeHracka, MojeMalaHracka, MojeMalaHrackaDrevena atd.. Byl by někdo tak moc hodný a poradil by mi jak to udělat? Hledat jsem se snažil, ale našel jsem jak nahradit pomlčku za mezeru
$var = strtr($var, '-', ' ');
Jak nahradit slova prvním znakem
$var = ucwords($var);
Jak odstranit mezeru
$var = strtr($var, ' ', '');
Nicméně takové řešení asi není vyhovujíci. Děkuji za pomoc.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

25.3.2014 15:30 Logik
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co na tom řešení není vyhovující?

25.3.2014 15:45 Páťák
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Třeba to, že to nefunguje?
25.3.2014 20:11 Logik
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Doporučuju Ti, až budeš příště od někoho chtít poradit, tak pokládat dotaz konkrétněji. Po týdle Tvojí "odpovědi" už nemam chuť dál radit...
26.3.2014 15:41 Páťák
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Hm, ale kdyby to fungovalo, tak se tady nebudu ptát. Navíc když se na ten kód podívá někdo, kdo tomu rozumí, ví, že to nefunguje. Ty jsi to nezjistil, patrně by jsi mi ani neporadil. Tak že mi to je celkem buřt.
pavlix avatar 26.3.2014 19:44 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Otázkou zůstává, co si tím hulvátstvím dokazuješ.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
25.3.2014 15:51 Lucius
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Odpovědět | | Sbalit | Link | Blokovat | Admin
Treba
implode(array_map('ucfirst', explode('-', $string)));
26.3.2014 15:43 Páťák
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Treba
implode(array_map('ucfirst', explode('-', $string)));
Děkuji. Tohle si musím nastudovat, neznám ani jednu funkci.
Josef Kufner avatar 26.3.2014 19:37 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Pozor jen na to, že ucfirst a podobné funkce pracují jen s ASCII kódováním. Tedy z 'č' neudělá 'Č' a z 'ɑ' neudělá 'Α'.
Hello world ! Segmentation fault (core dumped)
26.3.2014 20:13 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Stačí funkci 'ucfirst' vyměnit za 'mb_convert_case' a zkrotí to i žluťoučkého koně.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
AraxoN avatar 25.3.2014 17:33 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Odpovědět | | Sbalit | Link | Blokovat | Admin
To posledné v skutočnosti medzeru neodstráni. Inak na to ale ideš celkom dobre. Jediné čo by som k tomu pridal je, že by som to obalil do vlastnej funkcie, pretože by som čakal, že to budeš používať opakovane, na viacerých miestach:
function format_var($var) {
    return str_replace(' ', '', ucwords(strtr($var, '-', ' ')));
}

$var = 'moje-mala-hracka-drevena';
echo format_var($var);
26.3.2014 15:45 Páťák
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Taky děkuji, i za tu funkci. Můžu se zeptat, proč je použita funkce pro nahrazení jak str_replace() tak i strtr(). Hledám nějaké české porovnání mezi nimi ale nic jsem nenašel.
26.3.2014 16:22 Lucius
Rozbalit Rozbalit vše Re: PHP - Jak na velké znaky
Rozdil najdes v dokumentaci, tak jen ve zkratce v cem byl tvuj problem:

strtr je mozne pouzit dvema zpusoby:
string strtr ( string $str , string $from , string $to )

a

string strtr ( string $str , array $replace_pairs )
ty si pozil prvni
$var = strtr($var, ' ', '');
a o tom dokumentace rika :

If from and to have different lengths, the extra characters in the longer of the two are ignored. The length of str will be the same as the return value's.

tedy ti mezeru nenahradi

kdyz pouzijes druhy zpusob s polem, melo by to jit bez problemu
$var = 'moje-mala-hracka-drevena';
$var = strtr($var, '-', ' ');
$var = ucwords($var);
$var = strtr($var, array(' '=>''));

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.