Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Da stringa ad array a variabile

    Salve a tutti,
    vi pongo il mio problema:

    Ho una stringa per esempio contenente le seguenti informazioni:

    nome_classe=box|,|record_num=2|,|mostra_img=1|,|cl asse_mod=content ecc..

    che dopo trasformo in array suddividendola con explode tramite il separatore.
    Adesso la cosa che vorrei ottenere è questa una volta suddivisa:

    $nome_classe="box";
    $record_num="2";
    $mostra_img="1";
    $classe_mod="content";

    Si può fare ?
    Salut

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    codice:
    $string = "nome_classe=box|,|record_num=2|,|mostra_img=1|,|classe_mod=content";
    
    $pieces = explode('|,|', $string);
    
    foreach($pieces as $tupla) {
      list($nomevar, $value) = explode('=',$tupla);
      $$nomevar = $value; // attenzione al doppio dollaro, non è un errore :)
    }

  3. #3
    CIao Gianiaz,

    grazie per la risposta,
    ho provato in questo modo ma non mi crea le variabili quindi tira il valore solo a video.


  4. #4
    il codice di gianaz è perfetto; ti crea delle variabili che hanno per nome $nome_classe, $record_num...

    non era quello che volevi?


    se non fa quello che vuoi cerca di essere più chiaro

    come fa a stampare le variabili a video?
    Perchè essere stupidi non è una menomazione ma un diritto di tutti!!!

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    non ho capito cosa intendi con "tira solo a video".

    Comunque io ho provato il codice e funziona, prova ad aggiungere alla fine:

    codice:
    echo "<pre>";
    print_r($GLOBALS);
    echo '</pre>';
    dovresti vedere le tue variabili cosi come le hai chieste...



  6. #6
    ok scusate vi posto il codice
    Codice PHP:
    <?
    $param_arr
    explode("|,|",$parametri);

    foreach (
    $param_arr as $param_var){
        list(
    $nome_param$val_param) = explode('=',$param_var);
        $
    $nome_param trim($val_param);
    }
    if(
    $record_casuali==1){
        
    $order "rand()";
    }else{
        
    $order "id desc";
    }
    $qpm mysql_query("SELECT * FROM pwdb_contenuti WHERE visibile = 1 AND id_categoria = $categoria ORDER BY $order LIMIT $numero_record");
    $tipo_mod .='<div class="'.$classe_modulo.'">';

    while (
    $row_qpm mysql_fetch_array($qpm)) {

        
    $tipo_mod .='<div class="'.$classe_record.'">';
        if(
    $immagine_record!=1$tipo_mod .='[img]'.$row_qpm['immagine1'].'[/img]';
        if(
    $titolo_record!=1$tipo_mod .='<span class="'.$classe_titolo_record.'">'.$row_qpm['titolo'].'</span>';
        if(
    $testo_record!=1$tipo_mod .='<span class="'.$classe_testo_record.'"></span>';
        if(
    $data_record!=1$tipo_mod .='<span class="'.$classe_data_record.'">'.$row_qpm['data'].'</span>';
        
    $tipo_mod .='</div>';

    }

    $tipo_mod .='</div>';

    ?>
    da quella stringa dovrebbe tirare quelle variabili.. però una volta finito il ciclo nn ci sono.

  7. #7
    Codice PHP:
    //infatti se dopo

    foreach ($param_arr as $param_var){
        list(
    $nome_param$val_param) = explode('=',$param_var);
        $
    $nome_param trim($val_param);
    }

    //metto

    echo $categoria;  //una di quelle variabili contenute nella stringa non viene stampata 

  8. #8
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    il codice funziona, probabilmente l'errore è da un'altra parte prova a fare un po' di debug.

    ciao

  9. #9
    il tutto è ok.

    se mando a video echo $nome_param i valori vengono stampati

    Codice PHP:
    foreach ($param_arr as $param_var){ 
        list(
    $nome_param$val_param) = explode('=',$param_var); 
        echo $
    $nome_param trim($val_param); //FUNZIONA


    //QUESTI INVECE NO
    echo $categoria;
    echo 
    $classe_modulo//ecc.. 

  10. #10
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    scusa, ma se non dai la stringa di partenza, non posso fare altro che dirti che il codice funziona.

    Prova a postare la stringa intera, magari contiene dei caratteri che mandano in confusione il ciclo o la creazione della variabile.

    ciao

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.