Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24

Discussione: File.txt

  1. #11
    Quel file.txt funge da database (è comunemente detto database testuale).

    la funzione file() di php esegue una lettura rigo per rigo del file restituendo ciascun rigo all'nterno di un array.
    Pre farti un'idea fai così:

    Codice PHP:
    <?php
    $array_righi 
    file('file.txt');

    echo 
    '<pre>';
    /* struttura array */
    print_r($array_righi);
    ?>
    Pino SIlvestre ti ha inoltre suggerito di formattare ogni rigo in modo da potervi collocare più dati.

    Se però non ci dici cosa vuoi realizzare è difficile aiutarti nello specifico.
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  2. #12
    Originariamente inviato da oly1982
    Quel file.txt funge da database (è comunemente detto database testuale).

    la funzione file() di php esegue una lettura rigo per rigo del file restituendo ciascun rigo all'nterno di un array.
    Pre farti un'idea fai così:

    Codice PHP:
    <?php
    $array_righi 
    file('file.txt');

    echo 
    '<pre>';
    /* struttura array */
    print_r($array_righi);
    ?>
    Pino SIlvestre ti ha inoltre suggerito di formattare ogni rigo in modo da potervi collocare più dati.

    Se però non ci dici cosa vuoi realizzare è difficile aiutarti nello specifico.

    Sto facendo un Sistema di Paginazione, fino a ora sono arrivato a sviluppare fino a qui:
    Codice PHP:
    <?php

        $file 
    file("file.txt");
        
    $perpage 30;
        if (
    $perpage == TRUE
        
    $pos 0;
        if (
    $pos == FALSE
        
    $count count($file);

        for(
    $i $pos$i < ($perpage+$pos); $i++)
            {
                if(
    $i $count-1) break;
                
    $result explode("|" trim($file[$count-$i-1]));
                echo 
    "$result[0] $result[1]";
            }

        echo 
    "<div align='center'>[ ";
            for(
    $p 0$p $count$p++)
            {
                if(!(
    $p $perpage))
                {
                        
    $pg = ($p/$perpage)+1;
                        if (
    $p == $pos)
                        {
                            echo 
    "[url='?pos=$p']$pg[/url] ";
                        }
                        else
                        {
                            echo 
    "[b]$pg[/b] ";
                        }
                }
            }
        echo 
    " ]</div>";
    ?>
    Consigli su come continuare?

  3. #13
    io già dopo i primi tre righi del tuo script rimango perplesso...
    Codice PHP:
        $perpage 30// imposti la variabile il valore 30
        
    if ($perpage == TRUE// al rigo successivo verifichi se è vera???? mhà... 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  4. #14
    Io il codice base l'ho preso dal Tutorial che trovi ad inizio discussione e purtoppo come puoi notare tu stesso, è pieno di errori

  5. #15
    prova così... l'ho scritto velocemente e con pochi test quindi controllalo bene...
    Codice PHP:
    <?php 
    /* impostiamo il db*/
    $db_txt 'file.txt';

    /*se il file non esiste fermi tutti!!!*/
    if(!file_exists($db_txt)){
        exit(
    'il database non può essere aperto perchè non esiste');
        }
        
    /*costruiamo un array con i righi del db e contiamo i righi presenti*/
    $array_righi file($db_txt);
    $count_righi count($array_righi);

    /*impostiamo quanti righi per ogni pagina*/
    $per_page 5;
    /*calcoliamo il numero di pagine necessarie per l'impagginazione */
    $numero_pagine ceil($count_righi $per_page);

    /*intercettiamo la pagina corrente tramite GET altrimenti è pagina 1*/
    $page_corrente = ( isset($_GET['pos']) AND intval($_GET['pos']) ) ? min($numero_pagineintval($_GET['pos'])) : 1;

    /*estraiamo il sotto-array che vogliamo visualizzare*/
    $righi_da_visualizzare array_slice($array_righi, ($page_corrente-1)*$per_page$per_page);

    /*... e mostriamo questi righi...*/
    $output_content '';
    foreach(
    $righi_da_visualizzare as $key => $rigo){
        
    /*ogni rigo contiene due parti separati da | 
        e li isoliamo così da potermi stampare separatamente*/
        
    list($parte_a$parte_b) = explode('|'$rigo);
        
    $output_content .= $parte_a ' ' $parte_b '
    '
    ;
        }

    /*semplice pagination due pagine successive e due pagine precedenti*/
    $inizio_pag max(1, ($page_corrente-2));
    $fine_pag min($numero_pagine, ($page_corrente+2));
    $output_pagination '<div id="pagination">';
    for(
    $i=$inizio_pag$i<=$fine_pag$i++ ){
        if(
    $i!=$page_corrente){
            
    $output_pagination .= '[url="' .$_SERVER['PHP_SELF']. '?pos=' $i '"]' .$i '[/url] ';
            }
        else{
            
    $output_pagination .= $i .' ';
            }
        }
    $output_pagination .= '</div>';

    /*mandiamo l'output prodotto*/
    echo $output_content;
    echo 
    $output_pagination;
     
    ?>
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  6. #16
    Fantastico! Grazie Mille.
    Solo un'ultima cosa, mi viene dato questo errore e non riesco a risolverlo:

    Notice: Undefined offset: 1 in C:\Program Files (x86)\EasyPHP-5.4.0RC4\www\paginazione\numerazione.php on line 30

    Cioè in questo rigo:

    Codice PHP:
    list($parte_a$parte_b) = explode('|'$rigo); 
    Nel db ho inserito:

    1|2
    3|4
    5|6
    7|8
    9|10
    11|12
    13|14
    15|16
    17|18
    19|20
    21|22
    23|24
    25|26
    27|28
    29|30
    31|32
    33|34
    35|36
    37|38
    39|40
    41|42
    43|44
    45|46
    47|48
    49|50
    51|52
    53|54
    55|56
    57|58
    59|60
    61|62
    63|64
    65|66
    67|68
    69|70
    71|72
    73|74
    75|76
    77|78
    79|80

    L'errore compare nell'ultima pagina.
    Idee?

  7. #17
    ti compare perchè ci sono righi vuoti (anche un semplice ritorno a capo).

    cmq per ovviare prima di list metti:
    Codice PHP:
    if(strpos($rigo,'|')===FALSE) continue; 
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  8. #18
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Originariamente inviato da oly1982
    ti compare perchè ci sono righi vuoti (anche un semplice ritorno a capo).

    cmq per ovviare prima di list metti:
    Codice PHP:
    if(strpos($rigo,'|')===FALSE) continue; 
    Per le righe vuote gli conviene sostituire

    Codice PHP:

    // questo
    $array_righi file($db_txt); 

    // con questo
    $array_righi file($db_txtFILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); 
    per quanto riguarda le righe mal formattate... forse è meglio gestirle in altro modo, se ad esempio parte_b è un dato facoltativo e non obbligatorio (ma questo noi non possiamo saperlo)
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  9. #19
    Originariamente inviato da Secta
    Per le righe vuote gli conviene sostituire

    Codice PHP:

    // questo
    $array_righi file($db_txt); 

    // con questo
    $array_righi file($db_txtFILE_IGNORE_NEW_LINES FILE_SKIP_EMPTY_LINES); 
    per quanto riguarda le righe mal formattate... forse è meglio gestirle in altro modo, se ad esempio parte_b è un dato facoltativo e non obbligatorio (ma questo noi non possiamo saperlo)
    ottimo consiglio! Ammetto che non conoscevo queste costanti.

    Tuttavia essendo che al rigo successivo esegue un explode di "|" quell'if non ci sta così male.

    Riguardo la corretta formattazione del db testuale io starei attento a monte, cioè nella fase di "scrittura".
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  10. #20
    Perfetto!
    Nuovamente Grazie Mille di TUTTO!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.