Qualche anima pia mi saprebbe dire se esiste una funzine, o come posso fare in qualche modo, per sapere quante linee ci sono su un file di testo?
mi spiego meglio: utilizzo serialize() e unserialize() per visualizzare tutto su una pagna. Ad un certo punto, quando i records sono troppi vorrei cambiare pagina, quindi pensavo di scrivere su un file nuovo dopo che il primo aveva raggiuinto N righe.
Il mio ragionamento e' corretto, o esistono modo + furbi?
Oppure puoi memorizzare il numero dei record in un altro file txt (che aumenterai man mano che memorizzi nuovi record), e che puoi recuperare ogni volta che ne hai bisogno.
Effettivamente così riesco a beccare il num di righe, ma secondo te, perche' mi va in un loop infinito quando gli chiedo un unserialize?
Probabilmente faccio qualcosa di stupido... ma cosa??
boh posto il codice che e' meglio....:[code:1:58e5a9b0f2]if (file_exists("prova.txt") 1;
Il ciclo for è sbagliato, così ti diventa per forza un loop infinito:
for funziona così: for($i=0 (valore iniziale) ; condizione su $i da verificare ; $i++);
Tu come condizione hai usato un'assegnazione ($i=2), che il php vede come condizione sempre vera, da cui il loop.
Se lo scopo è usare unserialize solo nel terzo elemento dell'array $riga, inserisci un if alla fine del ciclo while invece di usare il for, così:
[code:1:26f1e650dc]while(...){
.
.
if ($i==2){
$v=unserialize($riga[$i]);
echo "<tr><td>".stripslashes( $v["nick"])."</td>";
echo "<td>".$v["testo"	 3;."</td>";
echo "<td colspan=2>".$v["data"].& quot;</td></tr>";
}
}[/code:1:26f1e650dc]
Altrimenti spiega cosa dovrebbe fare il ciclo.
Altra cosa: lo script nel complesso così non funziona perchè $riga non è creato come array; devi sostituire nel ciclo while $riga = fgets ($ff); con $riga[] = fgets ($ff);
Effettivamente c'era qualche errorino, ma sono nuovo del PHP.. perdono!
quello ch volevo fare in realta' era una sorta di paginazione, cioe' che mi tirasse fuori un certo num. di records, e poi passare ad una pagina nuova.
adesso ho messo come condizione del for ($i=0; i<3; i++) e così mi fa vedere solo i primi 3. Esiste la funzione che mi conta i recordes, mi sembra di si...
beh se devi crearti un'impaginazione puoi usare delle if
quindi abbiamo
<?
$aum = $inizio + 51;
$dim = $fine + 51;
for ($i=$inizio; $i < $fine; $i++){
if ($i <= $fine){
echo "$i) numero $i<br>";
//qui stampi tutto il codice dei record
}
else{
//stampi il link alla seconda pagina passando i parametri
echo "<a href=\"impagina.php?inizio=$aum&fine=$dim\"> ;vai altra pagina</a>";
}
}
?>
grazie gizax x il codice, ma mi sono arenato un pochino..., quindi ho cercato di concludere i miei ragionamenti seguendo la strada che avevo cominciato, ma aiutoooo!!!!!!
Una domanda prima di tutto: se voglio passare dei parametri con il metodo $_GET, ma la prima volta che accedi alla pagina questi parametri non ci sono esiste una funzione tipo isset() per verificare se $_get e' valorizzato?
Provo a postare il codice, ma non insultatemi vi prego!!!!
grazie...
if (file_exists("prova.txt"))
$ff =fopen("prova.txt", "r");
$i=0;
while (!feof ($ff))
{
$riga[] = fgets ($ff);
$i++;
};