probleme avec un file_get_contents

filoujuan
Invité n'ayant pas de compte PHPfrance

30 avr. 2008, 11:06

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 ;-)

ViPHP
ViPHP | 2287 Messages

30 avr. 2008, 11:14

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).
if(!@work()){ Nespresso(); } else { what(); }
______________________________

filoujuan
Invité n'ayant pas de compte PHPfrance

30 avr. 2008, 11:22

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']) );

ViPHP
ViPHP | 2287 Messages

30 avr. 2008, 13:02

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']) );
}
if(!@work()){ Nespresso(); } else { what(); }
______________________________

filoujuan
Invité n'ayant pas de compte PHPfrance

30 avr. 2008, 13:10

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

ViPHP
ViPHP | 2287 Messages

30 avr. 2008, 15:21

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.
if(!@work()){ Nespresso(); } else { what(); }
______________________________