Page 1 sur 1

probleme avec un file_get_contents

Posté : 30 avr. 2008, 11:06
par filoujuan
bonjour
j'ai fait une petite class de templete, je recup un fichier .tpl via un file_get_contents
je remplace mes {variable} par ce dont j'ai besoin mais a l'affichage je me retrouve avec un écart de 10 ou 15 saut de lignes en chaque variable

donc j'ai fait juste un petit test juste avec le file_get_contents($FILE) et je me retrouve toujours avec les mêmes saut de ligne

le fichier tpl

Code : Tout sélectionner

<table width="492" border="1" align="left"> <tr> <td width="198" height="30">{NOM}</td> <td width="189">{PRIX}</td> <td width="91">{ID}</td> </tr> </table>
l'affichage via file_get_contents
echo file_get_contents($FILE);
echo 'ligne test';
le résultat est :

1 affiche bien le tableau html
2
3
4
5
6
7
8
9
10 ligne test

si vous avez la solution, cela m'aiderais bien ;-)

Posté : 30 avr. 2008, 11:14
par Calimero
Bonjour,

Classe foireuse, données foireuses, template foireux... Difficile à dire avec si peu d'infos. Donne nous le code nécessaire pour reproduire exactement ton problème (y compris la classe).

Posté : 30 avr. 2008, 11:22
par filoujuan
alors ...

la class

class template {

    var $content;
		

	function set_file($FILE)
	{ 

     $this->content = file_get_contents($FILE);
	 
	}
	
	function parse_file($array)
	{ 
	
       return preg_replace('!{([^}]+)}!Use', "\$array['$1']", $this->content);	
		
	}	


}
le fichier template

Code : Tout sélectionner

<table width="492" border="1" align="left"> <tr> <td width="198" height="30">{NOM}</td> <td width="189">{PRIX}</td> <td width="91">{ID}</td> </tr> </table>

la page affichage

Code : Tout sélectionner

$template = new template(); $template->set_file("template.tpl"); echo $template->parse_file( array("NOM" => $data['prod'] , "PRIX" => $data['prix'] , "ID" => $data['id']) );

Posté : 30 avr. 2008, 13:02
par Calimero
http://chezmoicamarche.com
$datas=array(
	array(
		'id'=>1,
		'prix'=>999,
		'prod'=>'Lorem',
	),
	array(
		'id'=>2,
		'prix'=>4856369,
		'prod'=>'Ipsum',
	),
	array(
		'id'=>3,
		'prix'=>76896,
		'prod'=>'Dolor',
	),
	array(
		'id'=>4,
		'prix'=>4864642,
		'prod'=>'Sit',
	),
	array(
		'id'=>5,
		'prix'=>48632485646,
		'prod'=>'Amet',
	),

);

$template = new template();
$template->set_file("template.tpl");
foreach($datas as $data){
	echo $template->parse_file( array("NOM" => $data['prod'] , "PRIX" => $data['prix'] , "ID" => $data['id']) );
}

Posté : 30 avr. 2008, 13:10
par filoujuan
merci pour t'as reponse

mince alors, chez moi rien a faire, j'ai toujours ce saut de ligne entre les tabelaux, je n'arrive pas a comprendre d'où ça vient

Posté : 30 avr. 2008, 15:21
par Calimero
Cherche plutôt du côté du HTML généré par ta page (la commande "voir la source de la page" de ton navigateur), voire même de la CSS. Cela ne semble pas provenir du côté php.