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
Děkuji mnohokrát, to jsem přesně potřeboval! :-)
Kubo2
Profil
[#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.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0