View Full Version : [PHP] Cerco un tutor per due domande...
C'è qualcuno che può perdere una decina di minuti a darmi una mano su un comando in php??? prima chiedo, poi spiego...così se qualcuno è davvero interessato si fa avanti.
The Incredible
13-11-2007, 22:34
forse faresti meglio a postare la tua richiesta. :)
In poche parole io ho questo file HTML:
<link href="fantamister.css" rel="stylesheet" type="text/css" />
<div id="cannonieri">
<table class='cannonieri' border="0" cellspacing="0" cellpadding="0">
<tr class="cannonieri"><td colspan="2" class="canTITOLO">CLASSIFICA CANNONIERI</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 2</td><td class="canNOMEd">ZALAYETA Marcelo (gmx generation)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 1</td><td class="canNOMEp">RECOBA Alvaro (atletico mister)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 1</td><td class="canNOMEd">CRESPO Hernan Jorge (vai tra)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 1</td><td class="canNOMEp">NESTA Alessandro (right fighters)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 1</td><td class="canNOMEd">SIMPLICIO Fabio Henrique (belli e ribelli)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 1</td><td class="canNOMEd">PIRLO Andrea (belli e ribelli)</td></tr>
</table>
</div>
Io ora dovrei togliere la riga:
<tr class="cannonieri"><td colspan="2" class="canTITOLO">CLASSIFICA CANNONIERI</td></tr>
e questa:
<link href="fantamister.css" rel="stylesheet" type="text/css" />
Infine dovrei stampare a video solo i primi cinque marcatori, ovvero ottenere questo file:
<div id="cannonieri">
<table class='cannonieri' border="0" cellspacing="0" cellpadding="0">
<tr class="cannonieri"><td class="canGOLd"> 2</td><td class="canNOMEd">ZALAYETA Marcelo (gmx generation)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 1</td><td class="canNOMEp">RECOBA Alvaro (atletico mister)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 1</td><td class="canNOMEd">CRESPO Hernan Jorge (vai tra)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 1</td><td class="canNOMEp">NESTA Alessandro (right fighters)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 1</td><td class="canNOMEd">SIMPLICIO Fabio Henrique (belli e ribelli)</td></tr>
</table>
</div>
E' un esempio, perchè questo file generato da un programma viene aggiornato ogni settimana. Sapete dirmi qualcosa???
yorkeiser
15-11-2007, 15:58
Ma sei tu a far generare l'HTML tramite php (ovvero puoi modificare il file php) oppure hai solo l'HTML e devi modificare per forza quello?
Nel primo caso, dovresti postare il codice php che genera quel documento html, senza quello risulta impossibile darti una risposta precisa. Comunque, per limitare a 5 il numero dei record da stampare, ti basta inizializzare un contatore ed eseguire il ciclo di stampa finchè il contatore non raggiunga 5. Per esempio:
<?php
$i = 0;
while ($row = mysql_fetch_array($risultato, MYSQL_ASSOC) && $i<5)
{
echo
"<tr class='cannonieri'>
<td class='canGOLd'>"
.$row['GOL'].
"</td><td class='canNOMEd'>"
.$row."['GIOCATORE']
</td></tr>";
$i++;
}
?>
Nel caso tu abbia il solo documento HTML, basta farti un programmino (con qualsiasi linguaggio) che carica un file di testo e, in base alla riga letta, la riproduce in output o meno in base alle condizioni che vuoi. Anche se, per farlo una volta a settimana, si potrebbe fare tranquillamente a mano
In primis grazie della risposta!!!
Il file è creato da un programma (exe) e non posso modificare l'uscita. In passato grazie all'aiuto di un mio amico, ho utilizzate queste righe di PHP:
<?php
$puntFile=fopen("statistiche/cannonieri.htm","r");
$datiFile=fread($puntFile,filesize("statistiche/cannonieri.htm"));
fclose($puntFile);
$edit_File=str_replace("<tr class='titolo'><td colspan='2' align='center'>CLASSIFICA MARCATORI</td></tr>","",$datiFile);
$clear_File=strip_tags($edit_File,"<tr><td><table>");
$occ=explode("</tr>",$clear_File);
$prima_riga=1;
$ultima_riga=5;
echo "<table border= 0 cellspacing= 0 cellpadding= 0 >";
for($i=($prima_riga-1);$i<=($ultima_riga-1);$i++) echo "$occ[$i]</tr>";
echo "</table>";
?>
Ma ora non vanno più bene per quel file. Il file si chiama cannonieri.htm. Premetto che non posso usare MySQL. Sai se è possibile modificando il codice qui sopra??? Come detto prima dovrei togliere dal file HTM quelle due righe:
<tr class="cannonieri"><td colspan="2" class="canTITOLO">CLASSIFICA CANNONIERI</td></tr>
<link href="fantamister.css" rel="stylesheet" type="text/css" />
E stampare a video solo i primi 5 cannonieri (che con il tempo la lista portà allungarsi). E' possibile ottenere questo???
Ciao pix83, questo dovrebbe andare
<?php
$puntFile=fopen("statistiche/cannonieri.htm","r"); //devi inserire il percorso del file
$datiFile=fread($puntFile,filesize("statistiche/cannonieri.htm")); //devi inserire il percorso del file
fclose($puntFile);
$clear_File=strip_tags($datiFile,"<tr><td><table><div>");
$occ=explode("</tr>",$clear_File);
$before=str_replace("<tr class=\"cannonieri\"><td colspan=\"2\" class=\"canTITOLO\">CLASSIFICA CANNONIERI</td>","",$occ[0]);
$prima_riga=1;
$ultima_riga=5;
echo $before;
for($i=$prima_riga;$i<$ultima_riga;$i++) echo $occ[$i]."</tr>";
echo "</table>";
?>
Grande MEMon!!! :) come sempre in mio aiuto!!!
Una cosa, mi da questo in uscita (che è ottimo!!!):
<div id="cannonieri">
<table class='cannonieri' border="0" cellspacing="0" cellpadding="0">
<tr class="cannonieri"><td class="canGOLd"> 4</td><td class="canNOMEd">MUTU Adrian (atletico mister)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 4</td><td class="canNOMEp">IBRAHIMOVIC Zlatan (belli e ribelli)</td></tr>
<tr class="cannonieri"><td class="canGOLd"> 4</td><td class="canNOMEd">TOTTI Francesco (vai tra)</td></tr>
<tr class="cannonieri"><td class="canGOLp"> 3</td><td class="canNOMEp">ZALAYETA Marcelo (gmx generation)</td></tr></table>
Una domanda...anzi due...
Perchè mi lascia la riga vuota??? e ultima, hai dato come chiusura il DIV ed è OK, ma non me lo riporta, why???
La chiusure del div viene cancellata, mi sono scordato di rimetterla, aggiungila te dopo la chiusura della table
echo "</table></div>";
Per la riga vuota non ti preoccupare che tanto non viene considerata dal browser!
Fatto!!! che stupido, potevo arrivarci da solo :mad: ...
Togliere la riga vuota è possibile comunque???
Metti questa
$before=preg_replace("/\n<tr class=\"cannonieri\"><td colspan=\"2\" class=\"canTITOLO\">CLASSIFICA CANNONIERI<\/td>/","",$occ[0]);
al posto di quella che c'è ora.
Grazie MEMon!!! e scusa se ti disturbo sempre :( ...
Vi spiego subito il mio problema...di sotto vi posto il codice HTML della mia pagina. Fila tutto liscio, finchè non inserisco il primo script in PHP. Appena lo inserisco mi manda tutto fuori allineamento. Ovvero, Il DIV nominato "DATA" me lo sbatte sotto, rovinandomi anche l'allineamento del DIV "FOOTER". Vi linko l'esempio pagina corretta (senza script PHP):
http://www.masterleague.eu/prova/index1.php
Come detto, se inserisco, nell'ultimo DIV del menu a sinistra questo script in PHP:
codice PHP:
<?php
$puntFile=fopen("stat/ml/cannonieri.htm","r");
$datiFile=fread($puntFile,filesize("stat/ml/cannonieri.htm"));
fclose($puntFile);
$clear_File=strip_tags($datiFile,"<tr><td><table><div>");
$occ=explode("</tr>",$clear_File);
$before=str_replace("<tr class=\"cannonieri\"><td colspan=\"2\" class=\"canTITOLO\">CLASSIFICA CANNONIERI</td>","",$occ[0]);
$prima_riga=1;
$ultima_riga=5;
echo $before;
for($i=$prima_riga;$i<$ultima_riga;$i++) echo $occ[$i]."</tr>";
echo "</table>";
?>
mi rovina tutto, come potete vedere in questo link:
http://www.masterleague.eu/prova/index2.php
Il problema è che ci sbatto pure la testa in giro per trovare soluzioni, anche sulle guide o libri, ma non trovo l'errore porca puzzola!!! pensavo fosse dovuto alla grandezza delle tabelle del file CANNONIERI.HTM che importavo. Ma non è così...non ci riesco, e a pensarci mi incaxxo !!!...
Vi posto il codice CSS:
/*** HTML & BODY ***/
html,body {
margin: 0;
padding: 0;
}
body {
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
font-size: 10px;
}
#container {
width: 980px;
\width: 1000px;
w\idth: 980px;
border: 1px solid gray;
margin-left: auto;
margin-right: auto;
background: url(../images/page/page_background.jpg) repeat-y;
}
#title {
width: 940px;
height: 143px;
margin: 0px 20px 0px 20px;
background: url(../images/page/page_title.jpg) no-repeat;
}
#line {
width: 940px;
height: 12px;
margin: 0px 20px 0px 20px;
background: url(../images/page/page_line.jpg) repeat-x;
}
#content {
width: 940px;
margin: 0px 20px 0px 20px;
overflow: hidden;
background: Silver;
}
#menu {
width: 220px;
float: left;
background: Yellow;
}
#data {
width: 720px;
float: left;
background: Lime;
}
#footer {
width: 940px;
height: 104px;
margin: 0px 20px 0px 20px;
clear: both;
overflow: hidden;
background: #FFFFFF url(../images/page/page_footer.jpg) repeat-x top;
}
/*** CLASSE "FabClearing" ***/
.cleared:after {
display: block;
visibility: hidden;
content: ".";
height: 0;
clear: both;
}
.cleared {
clear: both; /* per Gecko */
height: 1%; /* per IE */
}
/*** MENU DI NAVIGAZIONE ***/
#menu a{
color: #000000;
text-decoration: none;
}
#menu a:hover{
color: #CAA200;
text-decoration: none;
}
#menu ul a:hover{
color: #DBDBDB;
text-decoration: none;
}
#menu_line{
width: 220px;
height: 19px;
float: left;
background: url(../images/page/menu_line.jpg) repeat-x;
}
#menu_link{
width: 215px;
height: 16px;
padding-left: 5px;
padding-top: 3px;
font-weight: bold;
float: left;
background: url(../images/page/menu_link.jpg) repeat-x;
}
#menu_title{
width: 215px;
height: 16px;
padding-left: 5px;
padding-top: 3px;
font-weight: bold;
float: left;
background: url(../images/page/menu_title.jpg) repeat-x;
}
#menu_java{
width: 220px;
height: auto;
float: left;
background: #E3E3E3;
}
#menu_java2{
width: 200px;
height: auto;
float: left;
background: #E3E3E3;
}
#smenu01{
float: left;
width: 215px;
height: 0px;
background-color: #A4A4A4;
padding-left: 5px;
}
#smenu02{
float: left;
width: 215px;
height: 0px;
background-color: #A4A4A4;
padding-left: 5px;
}
#smenu03{
float: left;
width: 215px;
height: 0px;
background-color: #A4A4A4;
padding-left: 5px;
}
#smenu04{
float: left;
width: 215px;
height: 0px;
background-color: #A4A4A4;
padding-left: 5px;
}
#smenu05{
float: left;
width: 215px;
height: 0px;
background-color: #A4A4A4;
padding-left: 5px;
}
...e il codice HTML della pagina:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Campionato Fantacalcio MASTER LEAGUE 07/08 - Seconda Edizione</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script language="JavaScript" type="text/javascript" src="js/page/prototype.lite.js"></script>
<script language="JavaScript" type="text/javascript" src="js/page/moo.fx.js"></script>
<script language="JavaScript" type="text/javascript" src="js/page/moo.fx.pack.js"></script>
<script type="text/javascript">
window.onload = function() {
menu01 = new fx.Height('smenu01', {duration: 400});
menu02 = new fx.Height('smenu02', {duration: 400});
menu03 = new fx.Height('smenu03', {duration: 400});
menu04 = new fx.Height('smenu04', {duration: 400});
menu05 = new fx.Height('smenu05', {duration: 400});
}
</script>
</head>
<body>
<div id="container">
<div id="title"></div>
<div id="line"></div>
<div class="cleared" id="content">
<div id="menu">
<div id="menu_line"></div>
<div id="menu_link">HOME</div>
<div id="menu_link"><a href="#" onclick="menu01.toggle(); return false">SQUADRE</a></div>
<div id="smenu01">PROVA PROVA PROVA</div>
<div id="menu_link">CLASSIFICA</div>
<div id="menu_link"><a href="#" onclick="menu02.toggle(); return false">RISULTATI</a></div>
<div id="smenu02">PROVA PROVA PROVA</div>
<div id="menu_link">CALENDARIO</div>
<div id="menu_link">FORMAZIONI</div>
<div id="menu_link">TABELLINO VOTI</div>
<div id="menu_link"><a href="#" onclick="menu03.toggle(); return false">STATISTICHE</a></div>
<div id="smenu03">PROVA PROVA PROVA</div>
<div id="menu_link">REGISTRO SQUADRE</div>
<div id="menu_link">INVIO FORMAZIONE</div>
<div id="menu_link"><a href="#" onclick="menu04.toggle(); return false">ALBO D'ORO</a></div>
<div id="smenu04">PROVA PROVA PROVA</div>
<div id="menu_link"><a href="#" onclick="menu05.toggle(); return false">NEWS</a></div>
<div id="smenu05">PROVA PROVA PROVA</div>
<div id="menu_title">RISULTATI ULTIMA GIORNATA</div>
<div id="menu_java">kiki</div>
<div id="menu_title">CLASSIFICA</div>
<div id="menu_java">kiki</div>
<div id="menu_title">PROSSIMO TURNO</div>
<div id="menu_java">kiki</div>
<div id="menu_title">CLASSIFICA MARCATORI ML</div>
<div id="menu_java">
<?php
$puntFile=fopen("stat/ml/cannonieri.htm","r");
$datiFile=fread($puntFile,filesize("stat/ml/cannonieri.htm"));
fclose($puntFile);
$clear_File=strip_tags($datiFile,"<tr><td><table><div>");
$occ=explode("</tr>",$clear_File);
$before=str_replace("<tr class=\"cannonieri\"><td colspan=\"2\" class=\"canTITOLO\">CLASSIFICA CANNONIERI</td>","",$occ[0]);
$prima_riga=1;
$ultima_riga=5;
echo $before;
for($i=$prima_riga;$i<$ultima_riga;$i++) echo $occ[$i]."</tr>";
echo "</table>";
?>
</div>
</div>
<div id="data">
<?php include ("inc/txt.inc"); ?>
</div>
</div>
<div id="footer"></div>
</div>
</body>
</html>
Vi giuro che non trovo errori, è questo mi fa innervosire, perchè s emi combina questo vuol dire che ci sono(!!!)...qualche anim apia che sa darmi indicazioni???...magari sbagli in più cose.
Pero' ho notato una cosa, se a posto dello Script in PHP di MEMon uso un semplice Include non mi da questi problemi di allineamento, come mai???
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.