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

    Convertire una stringa in array

    Buona sera.

    Se ho una stringa cosi:


    $a="\$link[1]='ciao';";

    e desidero poter scrivere:

    print $link[1] //output ciao

    In che modo posso procedere?

    Avevo pensato a eval(), o ha var_export() ma no riesco a combinare il codice.

    Grazie
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

  2. #2
    Questo codice funzione:


    $array_link="\$link[1]='ciao';";
    eval("return $array_link");
    print $link[1];

    Ma se scrivo:


    $array_link="\$link[1]='ciao';\$link[2]='hallo';";
    eval("return $array_link");
    print $link[2];

    Non mi stampa nulla. Qualche idea?
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Ma perché ti ritrovi in questa situazione raccapricciante?

    Puoi spegarlo? Da dove vengono quelle stringhe? Magari c'è un modo diverso di affrontare il tutto.

  4. #4
    Ciao.
    Un po per sfida, un pò perché dove devo realizzare questo lavoro, non ho ha disposizione un database, sto realizzando un sito utilizzando solamente gli array.
    Il tutto funziona ma adesso ho di bisogno di creare gli array (dove sono inseriti i diversi dati delle varie pagine) in modo dinamico.
    Ho pensato di inserirli un file testo con questa funzione:
    $salva=file_put_contents($nome_file_array.'.txt', json_encode($nome_array);

    e di recuperali con questa:
    $decomprimi=json_decode(file_get_contents($nome_fi le_array.'.txt'), true);

    Ma quest ultima mi restituisce una stringa cosi composta:
    "$link[1]=\"bello\";$link[2]=\"oggi\";"

    Da qui nasce la mia richiesta

    Qualche idea?
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Se ti manca un db si usa XML più vicino ad db invece che scrivere un json (che non nasce per questo) su un text
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Originariamente inviato da fabione_htm
    e di recuperali con questa:
    $decomprimi=json_decode(file_get_contents($nome_fi le_array.'.txt'), true);

    Qualche idea?
    comunque

    Codice PHP:
    $decomprimi = ( get_magic_quotes_gpc() ) ? json_decodestripslashesfile_get_contents($nome_file_array.'.txt') ), TRUE ) : json_decodefile_get_contents($nome_file_array.'.txt'), TRUE ); 
    Questa volta, più che un voto.. è favoreggiamento.

  7. #7
    Buon giorno.
    L'errore era mio io cercavo di salvare l'array in questa maniera:

    $voce_array_crea="\$".$nome_array."[".$_POST['chiave']."]=\"".$_POST['valore']."\";";

    Ovviamente creavo una stringa.

    Permettetemi di postare il codice funzionante nel caso in cui qualcuno abbia lo stesso problema.

    Per salvare il file:

    codice:
    //dati provenienti dal form
    if (!empty($_POST['nome_file'])||!empty($_POST['chiave'])||!empty($_POST['valore'])){
      $nome_file_array=$_POST['nome_file'];
      $chiave_array=$_POST['chiave'];
      $valore_array=$_POST['valore'];
    
    //questa lettura viene fatta per poi aggiungerci i dati
    //con json codice
      //$apri_array= json_decode(file_get_contents($nome_file_array.'.txt'), true);
    
    //con serializze
      $apri_array=unserialize(file_get_contents($nome_file_array.'.txt'));
      ($apri_array)?$lavora_array=array():$lavora_array=$apri_array;
    
    //aggiungi altri dati
    
    //un nuovo array quindi si avrà un multi array
    //$lavora_array=array($chiave_array => $valore_array);
    
    //oppure una voce al array esistente
    $lavora_array[$chiave_array]=$valore_array;
    
    //salvataggio
    //con json code
    //$salva=file_put_contents($nome_file_array.'.txt', json_encode($apri_array));
    
    //con serializze
    $salva=file_put_contents($nome_file_array.'.txt', serialize($lavora_array));
      ($salva)?$testo="Salvataggio avvenuto correttamente":$testo="Si è verificato un problema con il savatagio!";
      print $testo;
    }else{
      print"Dati mancanti!!";
       $nome_array="";
    }
    Ho inserito due forme di salvataggi con json code e con serializze, usate quello che meglio vi aggrada perchè onestamente non ho capito il perché non utilizzare l'uno a l'altro, comunque.

    Questo invece é il codice di lettura
    codice:
    //dati provenienti dal form
    if (!empty($_POST['nome_file_array'])){
      $nome_file_array=$_POST['nome_file_array'];
    
    //lettura file
    //con json code
      //$link=json_decode(file_get_contents($nome_file_array.'.txt'), true);
    //con deserializze
      $link=unserialize(file_get_contents($nome_file_array.'.txt'));
      var_dump($link);
    
    }else{
      print"Non è stato inserito nessun nome file!!";
      
    }

    Il prossimo passo é la creazione di una classe per la gestione all'array voglio arrivare ad ottenere:

    $mia_var = New GestisciFile($nome_file)
    con i metodi
    -> salva($valore_salva)
    -> leggi()
    -> modifica($quale, $con_cosa)
    -> cancella($quale)
    Non vi sto chiedendo di fare qualcosa, ma sto solo informando che se nella remota come improbabile casualità, qualcuno ha di bisogno di questa classe la posso aggiungere a questo post.


    Ciao e grazie a tutti.
    <-------------------------------->
    Se non avessimo difetti, non ci farebbe tanto piacere trovarne negli altri.
    <-------------------------------->
    Andate sempre contro il vento...Solo così imparerete a volare...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.