http://jimben.webz.cz/pokus125.php
Dobry den, ucim se PHP a pro pochopeni funkci si pomaham generatorem nahodnych slov, cisel...
tento script mi ale nefunguje spolehlive - jednou se vypise jak ma , podruhe ne. Je chyba v PHP nebo u mne napr. v cookies ?
<?php
$fp = FOpen ('SLOVO.txt', 'r');
while (!FEof ($fp))
{
static $i = 0; //STATICKÁ PROMĚNNÁ $i SLOUŽÍ K POČÍTÁNÍ ŘÁDKŮ
$i++; //INKREMENTACE $i
switch ($i%2)
{
case '1':
$citat[] = FGetS ($fp, 4096);
break;
}
}
FClose ($fp);
$CisloCitatu = Rand (0,(Count($citat)-1)); //VÝBĚR NÁHODNÉHO CITÁTU
print "Typ auta: <strong> <font color=red> $citat[$CisloCitatu]</font color=red></strong>";
?>
</p>
<?php
$jmeno ="$citat[$CisloCitatu]";
if($jmeno == "Skoda")
echo "Máme auto $jmeno!";
else
echo "Máme vůz $jmeno, Skodovku nechceme.";
?>
</p>
Ten skript jsem moc nepochopil, ale první cyklus by se IMHO dal nahradit
$citat[]=file('SLOVO.txt');
Nějak jsem nepochopil case '1': - testuješ na hodnotu 1 nebo řetězec '1'? PHP to sice nevadí, ale hůř se to chápe. Ostatně celý switch jak je napsaný postrádá logiku, zejména záhadná proměnná $i.
<HTML>Ten switch nedělá nic jiného, než že nutí $i skákat po dvou. Žádný jiný význam nemá, dokonce to ani neskáče ob řádek apod. Já bych doporučil totéž, co Kit - nastudovat si funkci file(). Pokud je každý citát uložen ob řádek, vypořádal bych se s tím při generování náhodného indexu (násobením dvěma).</HTML>
cz.php.net/file
cz.php.net/print_r //vypisoval bych si jednotliva pole
cz.php.net/echo //vypisoval bych znak v cyklu, kde mne zajima, jestli se ta cast provadi. Cokoliv, treba vypsat na obrazovku 1
cz.php.net/random
cz.php.net/rand
echo '1';
switch ($i%2)
{
case '1':
$citat[] = FGetS ($fp, 4096);
echo '2';
break;
}
echo '3';
podle mne to napise 13 13 13 a nikoliv ocekavane 123 13 123 13, protoze cislo % 2 je cislo a shoda s retezcem '1' zrejme nebude. navic nechapu, proc kazde druhy icko vybirat ze souboru, kdyz to muze delat kazde prvni