Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Community > Forum De Bell Tolls
 
[Programmazione] PHP + GD + text parsing
Clicca QUI per vedere il messaggio nel forum
fozzy
gia il titolo fa paura... :D

sto cercando di creare a runtime delle immagini contenenti del testo (banalmente online/offline anche se in realtà mi serve più complessa)
Ho un file di testo nel quale cercare l'esistenza di una determinata stringa e se questa esiste vorrei avere in un array tutta la riga (csv) per poter usare poi i dati contenuti..

Non ho trovato funzioni utili gia esistenti per farlo nel manuale php ma non riesco ad immaginarmi non ci siano..

In quale sezione li dovevo cercare :D

Grazie

unidavide
Mi sa che non ci sono funzioni specifiche per il csv cmq non basta una cosa del genere?

PHP:

$file = fopen ("temp.csv", "r");
    $riga = 0;
    while (strlen($data = fgets($file, 1024)) !=0 ){
        $findme   = 'stringadatrovare';
        $pos = strpos($data, $findme);
        if ($pos === false) {
            // non trovata in questa riga
        } else {
            // trovata la stringa
            $riga = explode(',', $data);
        }
    }
    if($riga){
        echo "trovata";
    }
    fclose($file);


Ryudo
Originally posted by fozzy

Non ho trovato funzioni utili gia esistenti per farlo nel manuale php ma non riesco ad immaginarmi non ci siano..


fgetcsv legge una riga da un puntatore a file e ritorna un array con i campi cvs

fozzy
grazie ad entrambi!
Ho scoperto poi che i campi sono separati da ":"
Sto utilizzando con successo il primo metodo.

Ciao

AlphaGamma
Ma che cosa sono i campi cvs?

unidavide
Originally posted by AlphaGamma
Ma che cosa sono i campi cvs?


si chiamano csv non cvs comunque sono "comma separated value".
E' un metodo per memorizzare dei dati (es. una tabella di un db) su un file di testo

AlphaGamma
Ah, quella cosa che si usa sempre quando non hai il database a disposizione? Stavo associando cvs a sourceforge... :D

unidavide
Originally posted by AlphaGamma
Ah, quella cosa che si usa sempre quando non hai il database a disposizione?


Penso di si, oppure quando devi spostare dei dati da due db e non hai altri mezzi

fozzy
nel post iniziale è scritto correttamente csv... :D
cmq in questo caso sono dei dump in file txt...

ora mi si pone un altro problema.. ho fatto dei test con dei file offline e fin qui tutto bene.. ma se provo ad usare dei file online con lycos sono inchiodato in quanto il php di lycos ha la direttiva allow_url_fopen messa ad off..

qualcuno conosce un servizio di hosting PHP su linux (quindi con GD) che permetta l'apertura di urls come files?

Grazie ancora.

AlphaGamma
Prova free.fr come hosting gratuito.

Ma il mio consiglio e' comprare un hosting quando fai qualche cosa di piu' serio di un phpnuke... ;)

fozzy
il punto è che non è una cosa particolarmente seria e non è a pagamento... :D
però non ho verificato i server web dell'ufficio.. magari ce la faccio lì.. :)

fozzy
ho risolto in parte i probleminel senso che ora posso aprire i file remoti ma ho ancora cerrti altri problemi...

posso fare il parsing dei fiel in locale (vedi sopra) non voelndo sovracccaricare il server che tiene il file da cui traggo le informazioni vorrei scriverlo in locale se sono passati meno di 5 minuti dall'ultima lettura del file remoto.
leggo l'ora di modifica del file locale prendo l'ora attuale se la diferenza è meno di 300 scarico di nuovo il file remoto.
mi funiona correttamente la funzione file("URL") ma non riesco a fare in modo che un eventuale $data=file("URL"); si tenga i CR+LF che ci sono nel testo originale... se uso implode che codice gli devo dare?

Grazie ancora :)

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate