IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 13. diel - Funkcie pre prácu s reťazcami v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Neaktivní uživatel:28.7.2014 13:40

Zaujíma ma jedna vec :D

$retezec = mb_strtoupper('PHP tutoriály na Devbooku.');
$podretezec = mb_strtoupper('devbook');

if (mb_strpos($retezec, $podretezec) **!== false**)
        echo "Nalezeno";
else
        echo("Nenalezeno");

prečo tam je !== false, keď to funguje aj s == true?
True je podľa mňa jednoduchšie na zapísanie...
Dik za odpoveď.

Editované 28.7.2014 13:41
Odpovedať
28.7.2014 13:40
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Matúš Petrofčík:28.7.2014 13:49
dačo !== false

je to isté ako

dačo === true

v tomto prípade je tam ale false zámerne!
podľa www.php.net - mb_strpos — Find position of first occurrence of string in a string
teda, funkcia mb_strpos vráti pozíciu kde sa nachádza hľadané slovo, a ak tam to slovo nenájde vráti false

problém je, že ak by bolo hľadané slovo hneď na začiatku prehľadávaného stringu, vypísalo by 0 (nula) čo je síce tiež false, ale práve preto v podmienke použijeme !== false namiesto != false

True by si mohol použiť, ale ak by to hľadané slovo bolo hneď na začiatku stringu, tak by sa vrátilo pozícia/číslo 0, čo znamená false, a tým by došlo k chybe

Odpovedať
28.7.2014 13:49
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Odpovedať
28.7.2014 14:00
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Matúš Petrofčík:28.7.2014 18:05

zamálo, snáď som ti dal pravdivé informácie :D

Odpovedať
28.7.2014 18:05
obsah kocky = r^2 ... a preto vlak drnká
Avatar
Jaroslav Polívka:22.2.2016 12:14

Ahoj, porovnávám dva řetězce a napadají mě dvě možnosti:

$var1 = "Hello";
$var2 = "Hello";
if (strcmp($var1, $var2) !== 0)
echo 'Neshoda';
else
echo 'Shoda';

a

$retezec='domovník';
$podretezec='domov';
echo('<br>');
if ( (mb_strpos($retezec, $podretezec) === 0) && (mb_strlen($retezec) === mb_strlen($podretezec)) )
        echo "Shoda";
else
        echo("Neshoda");

Vím, že Dave v článku nedoporučuje užití non mb_ fcí, je strcmp() nebezpečná, popř. jak jinak porovnávat shodu dvou řetězců?

Díky

Odpovedať
22.2.2016 12:14
Velice často si věci žijí svým životem
Avatar
Odpovedá na Jaroslav Polívka
Martin Konečný (pavelco1998):22.2.2016 15:57

a co

if ($var1 === $var2)}

?

Odpovedať
22.2.2016 15:57
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Odpovedá na Martin Konečný (pavelco1998)
Jaroslav Polívka:22.2.2016 16:48

Hmm Marťas, asi jo, ale ošívám se nad tím :-) , string nerad porovnávám takhle přímo typovým operátorem rovná se, ono tohle asi php snese, ale třeba z JAVY a C mám zažito, že na string vždy metodami.

Díky

Odpovedať
22.2.2016 16:48
Velice často si věci žijí svým životem
Avatar
Odpovedá na Jaroslav Polívka
Martin Konečný (pavelco1998):22.2.2016 17:21

je pravda, že jinde se to řeší jinak a popravdě ani nevim proč. Taky si nejsem jistý, zda ti to klasické porovnání vezme jakékoliv řetězce, ale nikdy jsem s tím v PHP problém neměl.
Ale jestli ti to udělá radost a chceš to řešit metodami, také jsem slyšel o funkci strcasecmp a bylo to od pana Vrány :D

Odpovedať
22.2.2016 17:21
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Pavel Polívka:16.10.2018 7:49

Ahoj,

u demostrace funkce strtr se nezobrazují obrázky. Bylo by možné to opravit?

 
Odpovedať
16.10.2018 7:49
Avatar
Richard Recman:7.12.2019 12:26

Ahoj, já se chci zeptat, zda poradíte nebo mě přesměrujete, jak naimplementovat vlastním způsobem řetězce jako implode, explode, substr, atd. . Máme to jako projekt do školy a nevím si rady, děkuju za pomoc :)

Editované 7.12.2019 12:27
 
Odpovedať
7.12.2019 12:26
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!