Tabella con date

Giovanni255

Utente Attivo
29 Set 2015
38
2
0
Salve a tutti,
tramite questo codice, il programma estrae le date da un file e le inserisce in una pagina html sotto forma di tabella.
Io vorrei fare in modo che al cambio mese mi visualizzi una riga con il nome del mese:
Es.

01.02.2016
Gennaio
31.01.2016
30.01.2016

Ecco il codice:
Codice:
<?php
	$cont = 0;
	$righe = file("./Dat.txt");
	if(!$righe)
		die("Errore!");
	echo "<table>";
	echo "<tr id='trArg'><th>"."Data"."</th><th>"."C1"."</th><th>"."C2"."</th></tr>";
	
	
	$righe=array_reverse($righe);
	$cont = 0;
	foreach($righe as $riga){
		$campi=explode(" ", $riga);//in $campi[0] =Daya, $campi[1] =C1, $campi[2] =C2 
		
		$originalDate = $campi[0]; 
		$campi[0] = date("l d/m/Y", strtotime($originalDate));
		$campi[1] = str_replace('_', ' ', $campi[1]);
		$campi[2] = str_replace('_', ' ', $campi[2]);
					
		if((date("m") != substr(($campi[0]),-7,2)) && ($cont < 1)){//Inserisce il mese al cambio mese
		   $vett = array('Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');
			echo "<tr class='rMesi'>"."<th colspan='3'>"."&nbsp"."&nbsp".$vett[(date('m'))-2]."</th>"."</tr>";
			$cont++;
		}
		
		echo "<tr class='t'><td class='td'>".$campi[0]."</td><td class='td'>".$campi[1]."</td><td class='td'>".$campi[2]."</td></tr>"; 
		
	}
?>

Grazie
 
Ciao.

Penso di non aver capito ma al posto di un Array non potresti usare la funzione Switch?

Aiutami a capire meglio.
 
Ciao,
praticamente ho un file di testo .txt che contiene delle date (11.03.2016) in ordine cronologico. Tramite il codice riportato, vengono visualizzate in una tabella in HTML. Vorrei fare in modo che questa funzione da creare mi confronti ogni data con la successiva; se il mese è diverso (es 1.03.2016 e 29.02.2016) mi metta una riga della tabella tra le due date con scritto (in questo caso) febbraio.
 
Ciao, posta un esempio del file txt, com'è strutturato ? le date sono in fila o in colonna ?
 
Ciao,
le date sono messe così:
22.03.2016
21.03.2016
10.02.2016
08.02.2016

Ogni volta che vado a capo è una nuova riga della tabella
 
quindi per ogni riga hai una sola colonna con la data? perchè dal codice che hai scritto sembra che tu abbia piu colonne
PHP:
echo "<tr class='t'><td class='td'>".$campi[0]."</td><td class='td'>".$campi[1]."</td><td class='td'>".$campi[2]."</td></tr>";
appena capisco cosa devi fare ci faccio due prove, non è difficile..
 
Si in effetti ho copiato solo la prima colonna. E' così
22.03.2016 Milano Città
21.03.2016 Roma Capitale
10.02.2016 Firenze Città
08.02.2016 Atene Capitale

Quando lo script trova uno spazio significa che cambia la colonna.
Grazie
 
prova cosi
PHP:
$righe = array_reverse(file("Dat.txt"));
if (!$righe)
    die("Errore!");
$vett = array(0, 'Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre');

echo "<table border='1'>";
echo "<tr id='trArg'><th>" . "Data" . "</th><th>" . "C1" . "</th><th>" . "C2" . "</th></tr>";

$mese = "";
foreach ($righe as $riga) {
    $campi = explode(" ", $riga); //in $campi[0] =Daya, $campi[1] =C1, $campi[2] =C2
    $data = explode(".", $campi[0]);

    if ($mese != $data[1]) {//Inserisce il mese al cambio mese
        echo "<tr class='rMesi'>";
        echo "<th colspan='3'>" . $vett[(int) $data[1]] . "</th>";
        echo "</tr>";
    }
    echo "<tr class='rMesi'>";
    echo "<td>" . $campi[0] . "</th>";
    echo "<td>" . $campi[1] . "</th>";
    echo "<td>" . $campi[2] . "</th>";
    echo "</tr>";

    $mese = $data[1];
}
attento che ho aggiunto anche un elemento all'array $vett
 
Ultima modifica:
Grazie mille, funziona!!
Scusa il ritardo ma non mi è arrivata la notifica della risposta e l'ho visto solo oggi. Grazie ancora!!
 

Discussioni simili