Visualizzazione risultati 1 fino 9 di 9

Discussione: [PHP] Random da file con 3 risultati...problemi!

  1. #1
    Guest

    Unhappy [PHP] Random da file con 3 risultati...problemi!

    Ciao a tutti, sto facendo un random in modo che mostri tre risultati (in questo caso siti) diversi da solo...solo che non riesco a farli girare come vorrei perchè alcuni non cambiano (e quindi sono uguali tra loro) oppure escono errori di PHP del tipo:
    Notice: Undefined offset: 9 in index.php on line 10
    Warning: eregi() [function.eregi]: REG_EMPTY in index.php on line 10
    Notice: Undefined offset: 9 in index.php on line 11
    Warning: eregi() [function.eregi]: REG_EMPTY in index.php on line 11
    Notice: Undefined offset: 9 in index.php on line 12
    Notice: Undefined offset: 9 in index.php on line 15
    ...questo è il file "index.php":
    Codice PHP:
    <?php
    echo "<h1>I siti random...</h1>";
    $file = getcwd()."/url.txt"; # minimo 5...
    $leggo = file($file);
    srand(time());
    $tot = count($leggo);
    $random1 = (rand(0,$tot+0)+1);
    $random2 = (rand(1,$tot-2)+1);
    $random3 = (rand(2,$tot-3)+1);
    if(
    eregi($leggo[$random1],$leggo[$random2])) { $random2 = (rand()%$tot-2); }
    if(
    eregi($leggo[$random1],$leggo[$random3])) { $random3 = (rand()%$tot-3); }
    if(
    eregi($leggo[$random2],$leggo[$random1])) { $random1 = (rand()%$tot-1); }
    if(
    eregi($leggo[$random3],$leggo[$random2])) { $random1 = (rand()%$tot-1); }
    echo <<<echo
    <b>Sito uno</b>: $leggo[$random1]<br />
    <b>Sito due</b>:
    $leggo[$random2]<br />
    <b>Sito tre</b>:
    $leggo[$random3]<hr />
    Altro testo che non ho scritto perchè serve solo per riempire la pagina! xD
    echo;
    ?>
    invece questo è il file "url.txt": (sono siti ad muzzum)
    Sapete come risolvere questo problema? Grazie mille...ciao Davide! ^^

  2. #2
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    per evitare duplicati si potrebbe generare un vettore random di oggetti (siti) e implementarlo in una coda(o pila). Quando si svuota si riinizia da capo.
    aru culu

  3. #3
    Guest

    Predefinito

    ...tradotto in codice cosa oppure quali funzioni dovrei usare? xD
    Non sono così bravo! :P Ciauuu! ^^

  4. #4
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    In generale googla un po per "pila" o "coda" oppure "lifo" e "fifo" o anche "stack" o "queue", sono concetti base per chi vuole programmare.
    In pratica vedendo meglio il tuo codice, tu usi:
    Codice PHP:
    $leggo = file($file);
    in questo modo dovresti avere tutto il file nell'array
    Codice PHP:
    $leggo
    A questo punto potresti usare shuffle per randomizzarlo e poi decidere cosa fare per visualizzarne i campi:
    Codice PHP:
    $max_siti=5
    for($i=0;$i<$max_siti;$i++){
    echo
    $lines[$i];
    }
    o anche usare la funzione array_pop
    aru culu

  5. #5
    Guest

    Predefinito

    volevo sapere come decorare la mia chat che e grezza e non sono capce di abbellire

  6. #6
    Guest

    Predefinito

    Ok..ma io devo dividere il random in 3 risultati! ;D
    Che naturalmente non devono essere uguali..è questo il mio problema! :D

  7. #7
    Guest

    Predefinito

    Ti ha risposto sliver... basta che segui le sue istruzioni :D

    Codice PHP:
    <?php
    echo "<h1>I siti random...</h1>";
    $file = getcwd()."/url.txt"; # minimo 5...
    $leggo = file($file);

    shuffle($leggo);

    for(
    $i=0;$i<3;$i++)
    echo
    $leggo[$i];
    ?>

  8. #8
    Guest

    Predefinito

    Ok...ora siccome li dovrei dividere in variabili ho fatto questo:
    Codice PHP:
    $siti = array($leggo[$i]);
    print_r($siti);
    Ma me li mostra così:
    Array ( [0] => http://www.eheheh.name ) Array ( [0] => http://www.ciao.it/dir/home.htm ) Array ( [0] => http://www.asdasd.com/?var=ko )
    Ma come li uso? xD ... visto che sono fatti sbagliati! XD
    Ciaooo! ^^

  9. #9
    Guest

    Predefinito

    ma nel ciclo devi fare sta roba?
    Se si..
    Codice PHP:

    <?php
    echo "<h1>I siti random...</h1>";
    $file = getcwd()."/url.txt"; # minimo 5...
    $leggo = file($file);

    shuffle($leggo);

    $siti = array();

    for(
    $i=0;$i<3;$i++)
    $siti[] = $leggo[$i];

    print_r($siti);
    ?>

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •