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

    gestione fonti con Flash php txt

    Salve a tutti.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    ehilà!

  3. #3
    Salve a tutti, sto realizzando un gestionale di informazioni con interfaccia flash, caricamento dati con file php e sorgente dati con un file.txt .
    In flash ci sono due campi regione, città e un pulsante cerca.
    Il pulsante se premuto caricherà il file.php.

    Il file.php adrà a caricare i dati dal file.txt dove per ogni riga ci sono tre informazioni
    regione, città, link a un file wsf.

    La formattazione dei valori nel file dati.txt deve essere in questo modo


    Lazio || Roma|| http://www.miosito.com/cartella1/car...eventofile.swf
    Lazio || Viterbo || http://www.miosito.com/cartella1/car...eventofile.swf
    Lazio || Rieti|| http://www.miosito.com/cartella1/car...eventofile.swf
    Lombardia || Milano || http://www.miosito.com/cartella1/car...eventofile.swf
    Lombardia || Pavia|| http://www.miosito.com/cartella1/car...eventofile.swf
    ecc

    Ho trovato questo script ma non riesco ad adattarlo alle mie esigenze.
    Confrinta solo due valori a me serve di recuperare anche il terzo (il link al file swf)

    <?php
    $confronta = 0;
    $array_dati = file("dati.txt");
    foreach($array_dati as $a)
    if(trim($array_dati[$a])==trim($regione."||".$citta)){
    $confronta = "trovato";
    print("&confronta=$confronta")
    exit();
    }
    }
    print("&confronta=$confronta")
    ?>

    Il codice php restituisce la variabile "confronta" con valore "0" se non trova una regione e una città corrispondente, separato da questa stringa ||, uguali a quelli inseriti nel campo flash.
    Altrimenti restituirà "trovato" se trova regione e città separato da questa stringa ||, uguali a quelli inseriti nel campo flash.

    Quello che mi interessa è realizzare un file php che oltre a resituire "0" oppure "trovato" riesca a recuperare anche la terza informazione (il percorso per caricare il file swf) abbinata al valori corrispondenti nel confronto.
    Poi io in Flash la utilizzerò per caricare l'swf in un fotogramma.

    Lo scopo finale è di ottenere informazioni specifiche abbinate a regione città

    Come posso fare non sono molto esperto in php!

    Grazie anticipatamente.

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Codice PHP:
    $regione trim(regione_che_arriva_da_flash);
    $citta   trim(citta_che_arriva_da_flash);

    $confronta 0;
    $array_dati file("dati.txt");

    foreach(
    $array_dati as $riga)
    {
        
    $dati explode('||',$riga);
        
        if (
    trim($dati[0]) == $regione && trim($dati[1]) == $citta)
        {
            
    $confronta "trovato";
            print(
    "&confronta=$confronta&link=".$dati[2]);
            exit();
        }
    }
    print(
    "&confronta=$confronta"

  5. #5
    Grazie tanto Alhazred!

    Come ho già detto non sono esperto in php e ho poca dimestichezza con gli array.
    Tuttavia vorei capire una cosa.

    La funzione explode restituisce una matrice di stringhe, ciascuna delle quali è una parte di string ottenuta dividendo la stringa originale utilizzando un separatore definito nell'espressione.
    Da quanto posso capire i valori di ogni riga vengono impilati e numerati partendo a 0
    ad esempio

    I seguenti dai inseriti in questa formattzaione del file dati.txt

    Lazio || Roma|| http://www.miosito.com/cartella1/car...eventofile.swf
    Lazio || Viterbo || http://www.miosito.com/cartella1/car...eventofile.swf
    Lazio || Rieti|| http://www.miosito.com/cartella1/car...eventofile.swf
    Lombardia || Milano || http://www.miosito.com/cartella1/car...eventofile.swf
    Lombardia || Pavia|| http://www.miosito.com/cartella1/car...eventofile.swf

    deduco che saranno inseriti nell'array in questo modo

    String Array ID

    Lazio [0]
    Roma [1]
    http://www.miosito.com/cartella1/car...eventoRoma.swf [2]
    Lazio [3]
    Viterbo [4]
    http://www.miosito.com/cartella1/car...ntoViterbo.swf [5]
    Lazio [6]
    Rieti [7]
    http://www.miosito.com/cartella1/car...ventoRieti.swf [8]
    Lombardia [9]
    Milano [10]
    http://www.miosito.com/cartella1/car...entoMilano.swf [11]
    Lombardia [12]
    Pavia [13]
    http://www.miosito.com/cartella1/car...ventoPavia.swf [14]

    Quello che non capisco come avviene il confronto!

    A me serve che il confronto avvenga in senso orizzontale non in verticale
    La funzione dovrà controllare se in ogni riga del file dati.txt ci sia una coppia di valori
    corrispondenti a quelli dei campi di input se non la trova restituirà valore "0" a flash,
    altrimenti restituirà valore "trovato".
    Flash poi dovrà essere in grado di recuperare l'id corrispondente alla coppia regione citta positiva al confronto che contiene il link a quello specifico file swf associato a regione citta.
    Ad es se inserisco nei campi di input Lombardia Milano il confronto sarà positivo per gli ID 9 e 10 e flash dovrà essere in grado di recuperare il valore dell' ID 11

    Se i dati sono impilati non riesco a capire come rintraccia il link esatto.

    Scusa la mia ignoranza e grazie per la pazienza!

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    No no, la numerazione non è quella che hai scritto.

    Ti spiego cosa fa il codice che ho scritto commetandolo
    Codice PHP:
    $regione trim(regione_che_arriva_da_flash);
    $citta   trim(citta_che_arriva_da_flash);

    $confronta 0;

    /*
    $array_dati è un array di array, è fatto così
    $dati_array[0] = array ( [0] => 'Lazio || Roma|| [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    $dati_array[1] = array ( [0] => 'Lazio || Viterbo || [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    $dati_array[2] = array ( [0] => 'Lazio || Rieti|| [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    ...
    e così via, una riga del file dati.txt per ogni entry dell'array
    */
    $array_dati file("dati.txt");

    /*
    ciclo sull'array $dati_array, ad ogni ciclo considera una entry, quindi:
    1° ciclo -> $riga = array ( [0] => 'Lazio || Roma|| [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    2° ciclo -> $riga = array ( [0] => 'Lazio || Viterbo || [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    3° ciclo -> $riga = array ( [0] => 'Lazio || Rieti|| [url]www.miosito.com/cartella1/cartella2/eventofile.swf[/url]' );
    ... e così via
    */
    foreach($array_dati as $riga)
    {
        
    /*
        explode fa quello che hai capito tu, divide una stringa in base ad un separatore e mette le varie parti in un array
        quindi ad ogni ciclo del foreach $dati viene sovrascritto con un nuovo array:
        1° ciclo -> $dati = array([0] => 'Lazio', [1] => 'Roma', [2] => 'www.miosito.com/cartella1/cartella2/eventofile.swf');
        2° ciclo -> $dati = array([0] => 'Lazio', [1] => 'Viterbo', [2] => 'www.miosito.com/cartella1/cartella2/eventofile.swf');
        3° ciclo -> $dati = array([0] => 'Lazio', [1] => 'Rieti', [2] => 'www.miosito.com/cartella1/cartella2/eventofile.swf');
        ... e così via
        */
        
    $dati explode('||',$riga);
        
        
    //ora si controlla che $dati[0] (ovvero la regione) sia pari a $regione E che $dati[1] (ovvero la città) sia pari a $citta
        //ad ogni ciclo, come hai visto sopra, $dati[0], $dati[1] e $dati[2] hanno valori diversi secondo le varie righe del file dati.txt
        
    if (trim($dati[0]) == $regione && trim($dati[1]) == $citta)
        {
            
    $confronta "trovato";
            print(
    "&confronta=$confronta&link=".$dati[2]);
            exit();
        }
    }
    print(
    "&confronta=$confronta"

  7. #7
    Grazie Alhazred sei stato molto esaustivo!
    Tieni presente che sono un profano in php tuttavia mi affascina molto questo tipo di programmazione. Poi gli array.... mi hai aperto un mondo!

    Mettendo in pratica ciò che gentilmente mi hai scritto ho provato a realizzare il file php e txt e poi ho testato se funziona il confronto su server.

    Ho creato un file in wordpad l'ho chiamato trovamedia.php ed ho inserito il tuo codice tra i tag php in questo modo.

    <?php
    $regione = trim(regione_che_arriva_da_flash);
    $citta = trim(citta_che_arriva_da_flash);
    $confronta = 0;
    $array_dati = file("dati.txt");
    foreach($array_dati as $riga)
    {
    $dati = explode('||',$riga);

    if (trim($dati[0]) == $regione && trim($dati[1]) == $citta)
    {
    $confronta = "trovato";
    print("&confronta=$confronta&link=".$dati[2]);
    exit();
    }
    }
    print("&confronta=$confronta")
    ?>

    Ho creato sempre con wordpad il file dati.txt inserendo:

    Lazio || Roma|| http://www.miosito.com/cartella1/car...eventoroma.swf
    Lazio || Viterbo || http://www.miosito.com/cartella1/car...ntoviterbo.swf
    Lazio || Rieti|| http://www.miosito.com/cartella1/car...ventorieti.swf
    Lombardia || Milano || http://www.miosito.com/cartella1/car...entomilano.swf
    Lombardia || Pavia|| http://www.miosito.com/cartella1/car...ventopavia.swf

    Ho provato ad avviare trovamedia.php sul browser e per mia meraviglia mi ha risposto:

    &confronta=0

    Immagino che il risultato sia dipeso dl fatto che non c'è stato alcun confronto pur avendo le variabili $regione e $citta valore "null" il confronto è stato fatto ugualmente.

    Ho provato quindi a fare un test inserendo delle variabili manualmente in questo modo:

    trovamedia.php?regione=Lazio&citta=Roma

    tuttavia mi restituisce sempre

    &confronta=0

    dove ho sbagliato?

    Grazie anticipatamente per la pazienza

  8. #8
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Codice PHP:
    $regione trim($_GET['regione']);
    $citta trim($_GET['citta']); 
    anche se sarebbe più corretto verificare che i parametri passati in querystring siano valorizzati e del tipo che ti aspetti (isset(), empty(), ecc).

  9. #9
    Ho aggiornato il file php con i gentili suggerimenti di clasku che ringrazio.
    Tuttavia il risultato è sempre lo stesso

    se inserisco le variabili manualmente

    trovamedia.php?regione=Lazio&citta=Roma

    il risultato è sempre

    &confronta=0

    A flash devono arrivare una variabile confronta con valore "0" o "trovato"
    e il valore della variabile link che contiene il percorso di ricerca del file swf da caricare.

    Immagino che se manualmente gli do i valori giusti regione=Lazio e citta=Roma in base al codice

    print("&confronta=$confronta&link=".$dati[2]);

    mi sarei aspettato un risultato del genere

    &confronta=trovato,http://www.miosito.com/cartella1/car...eventoroma.swf

    mentre invece mi da sempre

    &confronta=0

    Sbaglio qualcosa?

    Scusate la mia poca dimestichezza in php

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ho appena provato il codice e funziona, ho solo aggiunto un trim su un print perché mi sono accorto che altrimenti stampa uno spazio che non ci vuole.
    Codice PHP:
    $regione trim($_GET['regione']);
    $citta   trim($_GET['citta']);

    $confronta 0;

    $array_dati file("dati.txt");

    foreach(
    $array_dati as $riga)
    {
        
    $dati explode('||',$riga);
        
        if (
    trim($dati[0]) == $regione && trim($dati[1]) == $citta)
        {
            
    $confronta "trovato";
            print(
    "&confronta=$confronta&link=".trim($dati[2]));
            exit();
        }
    }
    print(
    "&confronta=$confronta"); 
    lo script lo richiamo in questo modo
    trovamedia.php?regione=Lazio&citta=Roma

    e restituisce
    &confronta=trovato&link=www.miosito.com/cartella1/cartella2/eventoroma.swf

    Il file dati.txt si deve trovare nella stessa cartella dello script.

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.