Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [PHP] cancellare una riga da un file di testo

    Ciao a tutti,
    sto iniziando ad usare i file di testo come alternativa al database.
    Sono giunto al punto in cui devo simulare la funzione DELETE....WHERE..... come posso fare a cancellare una riga dal file di testo sapendo quale riga cancellare?

    Grazie mille in anticipo ;D
    Flash Developer for Rich Media
    PHP, jQuery Developer

  2. #2
    Ciao.
    Bisogna vedere che struttura ha l'array
    gurada se una cosa del genere può tornarti
    utile:
    Codice PHP:
    function seek($array$key){
            
    $tmp= array();
            if(
    is_numeric($key)){
                foreach(
    $array as $k => $value){
                    if(
    $k!==$key){
                        
    $tmp[]= $value;
                    }
                    
                }
            }
            return 
    $tmp;
        }
    $array= array('uno','due','tre'); 
    var_dump(seek($array,0)); 
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    non capisco molto cosa fa il tuo codice o_ò

    facciamo un esempio:
    io ho il mio file di testo contente le seguenti righe:

    codice:
    1#2538#Lieti Eventi#1176323109
    2#2539#Mercato - ordini merci#1176323123
    3#2538#Lieti Eventi#1176323109
    4#2539#Mercato - ordini merci#1176323123
    e voglio cancellare la riga 3, essendo sicuro di saperne tutto il contenuto, come faccio a rimuoverla e a far diventare il file

    codice:
    1#2538#Lieti Eventi#1176323109
    2#2539#Mercato - ordini merci#1176323123
    4#2539#Mercato - ordini merci#1176323123
    ?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  4. #4
    non capisco molto cosa fa il tuo codice o_ò
    Ti restituisce un array che non ha
    come chiave quella passata come parametro
    per il tuo esempio puoi benessimo adattare
    l'esempio
    invece di
    if($k!=$key)
    no
    if($k!==$key)
    potresti utilizzare

    $find=explode("#","1#2538#Lieti Eventi#1176323109");
    if($find[0]==$key){recuperi il valore}


    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    io quindi in pratica faccio
    Codice PHP:
    function seek($array$key){ 
            
    $tmp= array(); 
            if(
    is_numeric($key)){ 
                foreach(
    $array as $k => $value){ 
                
    $find=explode("#",$k);
                if(
    $find[0]==$key){
                        
    $tmp[]= $value
                    } 
                } 
            } 
            return 
    $tmp
        }

    $file_array file($filename);
    var_dump(seek($file_array,3)); 
    e poi riscrivo il file con l'array ottenuto.... giusto?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #6
    ma il var_dump non fa quello che mi hai detto te o_ò ... php.net mi dice che mi restituisce il tipo e il contenuto di una variabile... non mi cancella l'elemento dall'array o_ò
    Flash Developer for Rich Media
    PHP, jQuery Developer

  7. #7
    ma il var_dump non fa quello che mi hai detto te o_ò ... php.net mi dice che mi restituisce il tipo e il contenuto di una variabile... non mi cancella l'elemento dall'array o_ò



    Codice PHP:
     $find=explode("#",$k); 
    semmai

    Codice PHP:
     $find=explode("#",$value); 

    o^O'
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Codice PHP:
     if($find[0]==$key){ 
    Codice PHP:
     if($find[0]!=$key){ 
    o^O'
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  9. #9
    Ah per la cronaca come separatore solitamente
    per i file di testo si usa "\t" al posto si un qs
    altro carattere.

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  10. #10
    ho risolto così:
    Codice PHP:
    function array_remove(&$arr,&$value) { 
       if(!
    in_array($value,$arr)) return $arr
       unset(
    $arr[array_search($value,$arr)]); 
       return 
    array_values($arr); 
    }

    function 
    seek(&$array,&$key,$index){
        if(
    is_numeric($key)){ 
            foreach(
    $array as $k){
            
    $find=explode("#",$k);
            if(
    $find[$index]==$key){ 
                    echo 
    $find[$index];
                    
    $tmp $k
                } 
            } 
        } 
        return 
    $tmp


    if (
    file_exists($filename) == TRUE){
        
    $riga file($filename);
        
    $riga_da_togliere seek($riga,$ID_TOPIC,1);
        
    $riga_mod array_remove($riga,$riga_da_togliere);
        
    $somecontent "";
        foreach (
    $riga_mod as $r){
            
    $somecontent .= $r;
        }
        
        if (!
    $handle fopen($filename'w')) {
             echo 
    "Non si riesce ad aprire il file ($filename)
    "
    ;
             exit;
        }
        
    // Scrive $somecontent nel file aperto.
        
    fwrite($handle$somecontent);
        
    fclose($handle);

    grazie mille lo stesso ^_^
    Flash Developer for Rich Media
    PHP, jQuery Developer

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.