PDA

View Full Version : [PHP] Gestione Files (HTML)


sey
28-06-2005, 09:30
Innanzitutto, salve a tutti! ^^

Per innauguarare la mia iscrizione comincio subito con l'esporvi il mio problema! :p
Dovrei realizzare uno script che prelevi un file HTML da un server FTP e lo formatti secondo le mie esigenze, inserendolo poi "armoniosamente" nella pagina.
Per il prelievo nessun problema, ma il problema sorge quando comincio a cercare di formattarlo... Fino ad ora sono andato a str_replace o cancellando linee, ma quando arrivo ad una parte del file "dinamica" (viene modificata automaticamente da un programma, è una sorta di "useronline") non so cosa fare...
Vi spiego: E' una lista di utenti, una tabella in cui sono scritti tutti i loro vari dati, ma non so come eliminare uno solo di questi, visto che sono in una singola linea.

<tr><td>Nome1</td><td>Dato1</td><td>Dato2</td><td>Dato2</td><td>Dato4</td></tr>
<tr><td>Nome2</td><td>Dato1</td><td>Dato2</td><td>Dato2</td><td>Dato4</td></tr>

Ciò che più mi servirebbe sarebbe un "qualcosa" che riconoscesse quel dato e lo eliminasse... Potete aiutarmi? ^^

Un altra cosa: come posso fare il replace di più linee assieme?

Aspetto risposte! :)

kratteo
28-06-2005, 10:21
controlla la funzione preg_replace ..penso possa aiutarti ;)


preg_replace("#<tag>(.*?)\</tag>#si", "", $text);

prova cosi..in questo modo elimina il testo all'interno del tag

se vuoi invece mantenere il testo del tag.. nel secondo parametro inserisci "\\1"

sey
28-06-2005, 10:29
Ma così facendo, se io la usassi in questo modo:

preg_replace("#<td>(.*?)\</td>#", "", $text);

Non verrebbe cancellato tutto quello che presente tra <td> e </td>, quindi TUTTI i dati?

kratteo
28-06-2005, 10:32
in quel modo si cancelli tutto...

se vuoi tenere solo il tag semplicemente
preg_replace("#<td>(.*?)\</td>#si", "<td></td>", $text);


se vuoi tenere solo il testo
preg_replace("#<td>(.*?)\</td>#si", "\\1", $text);

sey
28-06-2005, 10:38
Non hai capito, io non voglio cancellare tutti i dati, ma solo uno di quei dati... ti do la sintassi, dato che con le espressioni non sono tanto bravo...

I, I, I (S)

Dove I=Intero e S=Stringa.

kratteo
28-06-2005, 10:44
neanke io sono molto pratico con le espressioni comunque..dovrebbe essere una cosa del tipo


preg_replace("#<td>[0-9]{se il numero ha una dimensione fissa metti il numero di cifre, altrimenti non mettere nulla},[0-9]{n},[0-9]{n}, (.*?)</td>#si", "<td></td>", $text);

sey
28-06-2005, 10:47
Scommetto che non funziona con i numeri negativi... :\

kratteo
28-06-2005, 11:00
mm non te lo so dire..

sey
28-06-2005, 12:23
Allora... per fare in modo che venga anche cancellato l'eventuale - davanti ai numeri?

sey
29-06-2005, 08:45
Niente? :\

sey
30-06-2005, 14:09
Per favore mi potete aiutare? E' abbastanza urgente ora. :)

Ripeto: <td>N, N, N (T)</td>

N = Numero, numero di cifre variabile, positivo o negativo.
T = Testo, tra parentesi tonde.