script: fermer les balises php

Répondre
raphlight
le 07/10/2008 à 17:27
raphlight
Bonjour,

Dans un fichier .php j'ai écrit de nombreuses fois :
<?php 
//du code...
?>


J'ai un problème, à cause d'un include, l'une de ces balises reste ouverte :
<?php
include "fichier.php";
?>


Le fichier.php étant :
<?php
//code


Il manque donc à mettre à la suite de ça :
?>


Dans le fichier.php il m'est impossible de rajouter ces 2 caractères manquant pour fermer la balise car il résulte de variables...et c'est compliqué ^^

Comment faire donc dans mon fichier contenant l'include pour refermer la balise ouverte ? se referme t-elle toute seule, cas particulier aux includes ? quels dangers si je la laisse ouverte ?

Merci d'avance
http://raphlight.free.fr/trad.php
raphlight
le 07/10/2008 à 17:33
raphlight
(désolé pour le double-post)

ou alors...peut être plus simple, je met "?>" quand même dans mon fichier.php et je l'efface en fonction de mes variables pour le rajouter...

J'explique, dans ce cas-là ca donnerait :

1) j'ouvre le fichier (fopen)
2) là j'efface les 2 derniers caractères du fichier qui sont "?>"
3) Je ré-écris par dessus en rajoutant à la fin le "?>" (fwrite)
4) je referme le fichier (fclose)

Comme ça le "?>" et toujours présent et ca fonctionne avec mon code "compliqué" :)

Mais comment effacer les 2 derniers caractères d'un fichier uniquement ?
http://raphlight.free.fr/trad.php
LA GLOBULE
le 07/10/2008 à 17:45
LA GLOBULE
Pourquoi c'est compliqué d'écrire un ?> à la fin du fichier ?

Sinon, tu peux faire un substr pour effacer les deux derniers caractères. Après, tout dépend de ta méthode de lecture du fichier (tout prendre dans une variable ou prendre morceau par morceau).
raphlight
le 07/10/2008 à 18:59
raphlight
Mon fichier.php change très souvent, du fait de variables placées à l'intérieur et également de formulaires qui ajoutent du texte à la fin de ce fichier...

Je ne comprends pas les méthodes de substr...j'ai beau chercher sur le manuel php officiel ou autres sites je ne comprend pas comment le faire fonctionner avec mon fichier.php


Par exemple, si mon fichier.php contient :
<?php
//code
?>

je fais
<?php
//ouvre le fichier + preleve le texte contenu à l'interieur
$valiid = fopen("propook.php","r+");
$donnees = fgets($valiid,33333);

//on vire le ?\> de fermeture.
// 1. on remplace les données
$donnees2 = str_replace('?>','',$donnees);
// 2. on ajoute au formulaire
fwrite($valiid,"$donnees2" ,strlen("$donnees2"));
// 3. on referme
fclose($valiid);
?>


Avec ce code...normalement le "?>" devrait disparaître, non?
http://raphlight.free.fr/trad.php
raphlight
le 07/10/2008 à 19:18
raphlight
euh...je me suis embrouillé là...

Le code du post au dessus marchera surement pas ^^
Enfin, faut faire comme si j'avais mis une ouverture en w+ avant de "virer le ?" ;)

Et c'était une question oratoire, ca marche bel et bien ^^ Je n'ai plus qu'a continuer comme ca :P


Arf...c'est souvent la même chose, je post sur le forum mais au final je trouve tout seul un intermédiaire...

Enfin tout seul...avec l'aide de La Globule qui me donne des pistes :D
http://raphlight.free.fr/trad.php
LA GLOBULE
le 07/10/2008 à 19:22
LA GLOBULE
$donnees = fgets($valiid,33333);

Comment etre sur que tu choppes tout bien ?

Moi je ferais un file_get_contents, et un substr sur le résultat (voir mieux une regex qui bute le dernier ?> du fichier).
raphlight
le 07/10/2008 à 19:40
raphlight
euh j'ai toujours pas compris le substr mais le 33333 c'est à guise d'exemple, c'est juste pour tester ;)

Euh...par contre ca concerne toujours mon problème mais ca n'est plus trop le même sujet...

un include php dans un fichier php n'est pas possible?

Enfin je veux dire, si une page index.php contient :

<?php
include "youp.php";
?>


et le fichier youp.php contient :
<?php
//code
?>


Alors cela me donne :

Parse error: syntax error, unexpected '<' in /mnt/109/sdb/8/1/dossier/youp.php on line 1


...pourquoi? Comment faire autremenent ?
http://raphlight.free.fr/trad.php
raphlight
le 07/10/2008 à 19:50
raphlight
*sachant que le fichier youp.php doit être inclu, impossible de mettre directement le //code dans index.php :S
http://raphlight.free.fr/trad.php
LA GLOBULE
le 07/10/2008 à 20:27
LA GLOBULE
Ben si un include, ca fonctionne.
Tu as du faire de la merde.
Genre le youp.php ne contient pas un <?php
raphlight
le 02/11/2008 à 15:04
raphlight
Oùlà...en effet j'avais mis deux fois ?>

Ok...le problème était stupide ><
Bon ben ce sujet n'a plus lieu d'être, le mal est réparé...

Merci ^^

(scusez' du retard de la réponse)
http://raphlight.free.fr/trad.php
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours