Autor | Zpráva | ||
---|---|---|---|
Welton123 Profil |
Zdravím, mám takovejto php kod:
<?php $a = $_GET['a']; $pos = strpos($a, "Ahoj"); if ($pos == false) {?> Ahoj <?$pos = strpos($a, "skvěle");?> <?} elseif ($pos == false) {?> Skvěle <?} else {?> Tomu nerozumím. <?} ?> a snažím se udělat, že pokud bude v proměnné někde slovo Ahoj, tak se vypíše "Ahoj" a pokud ne, tak to skontroluje zda je tam "skvěle" a když ho to najde, tak to vypíše skvěle. Ovšem pokud to nenajde ani jedno, napíše se "tomu nerozumím". Vím, že to asi není správně, ale bych bych rád za jakékoliv rady. Děkuji |
||
jenikkozak Profil |
Jsou tam 2 chyby:
- Funkce strpos vrací v případě neúspěchu hodnotu false, v opačném případě pozici nalezeného řetězce, která může být i 0. Proto je potřeba kontrolovat identitu. - Ke druhému přiřazení proměnné $pos dojde jen v případě, že je splněna 1. podmínka. Pokud splněna není, nemůže být splněna ani druhá, protože ověřuje vlastně totéž.
Funkční skript by byl tento: <?php $a = $_GET['a']; if (strpos($a, "Ahoj") !== false) { echo "Ahoj"; } elseif (strpos($a, "skvěle") !== false) { echo "Skvěle"; } else { echo "Ahoj ani skvěle nebylo nalezeno."; } ?> |
||
Welton123 Profil |
#3 · Zasláno: 8. 8. 2013, 18:34:54
Děkuji mnohokrát, to jsem přesně potřeboval! :-)
|
||
Kubo2 Profil |
#4 · Zasláno: 8. 8. 2013, 23:49:41
[#3] Welton123:
Len tak mimochodom, odporúčam ti pozrieť sa aj na funkciu preg_match využívajúcu regulárne výrazy. V budúcnosti sa ti s veľkou pravdepodobnosťou zíde, napríklad pri validovaní vstupov. |
||
Časová prodleva: 11 let
|
0