Pb de variable

cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004 - 16 janv. 2004 à 11:49
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004 - 20 janv. 2004 à 14:13
Bonjour tout le monde,

Je suis nouveau dans le monde du PHP. J'ai un soucis avec cette fonction :
<?
function titre($URL, $valeur)
{
$data = fopen ($URL, "r");
if (!$data)
{
return "Impossible d'ouvrir le fichier";
break;
}

while (!feof($data))
{
$ligne1 = fgets($data, 4096);
$ligne2 = fgets($data, 4096);
if (strncasecmp($ligne1,$valeur,max(1,strlen($valeur)))==0)
{
$texte=$ligne2;
break;
}
}
fclose ($data);

$texte=str_replace(chr(10),"",$texte);
$texte=str_replace(chr(13),"",$texte);

return $texte;
}
?>

Il m'indique : Undefined variable: texte

Quelqu'un pourrait-il me dire ou est le problème

15 réponses

fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
16 janv. 2004 à 13:17
sa doit etre parce que il arrive pas a rentrer dans ta boucle while ou if donc $texte n'est pas déclaré

si c normal qu'il soit pas rentré dans les boucles alors rajoute avant ton while : $texte="";

sinon c que tes condition pour rentrer dans tes boucles sont fausses!

enfin c ce que je pense

NIARF :-p
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
17 janv. 2004 à 10:06
Qu'est ce que tu veut faire avec ton script peut etre je peut te donné une solution plus simple et plus optimise

jamac@fr.st
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 09:07
Voici ce que je souhaite faire. J'ai un fichier dans lequel se trouve la fonction décrite plus haut. J'ai un fichier texte nommé "titres.desc" qui contient les données suivantes :

index
Bienvenue sur le site
actualite
Actualité des activités
....

Dans la page où je souhaite voir afficher le texte, je fais un <?include ("titres.php");?>

A l'endroit où je souhaite voir apparaitre le texte je lui indique :
$nom_page_courante=substr(strrev(substr(strrchr(strrchr(strrev($_SERVER['PHP_SELF'] ),'.'),1),1)),1);
afin de recupérer le nom de la page courante qui correspond à la ligne avant le texte (par exemple "index")

ensuite je lui demande d'afficher le résultat :
echo titre("titres.desc",$nom_page_courante);

Cela ne me retroune rien pourtant lorsque que je lui fait :
echo $nom_page_courante;
il me donne bien le texte de la page courante

Voilà, j'espère avoir été plus claire cette fois ci

d'avance merci
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 11:21
si j'ai bien compris tu veut faire comme une base de donnée pour la description de tes pages

<?
$page = explode("/", $PHP_SELF);
$page= eregi_replace("\.htm|\.html|\.php|\.php3", "", $page[count($page)-1]);
$base = file('titres.desc');
for ($n=count($base);$n>-1;$n--)
{if(eregi($page,$base[$n]))
{$desc = ($base[$n+1]);
break;}}
echo $desc;
?>


essai avec ca et bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 11:26
NB: tu insert ce script dans la page que tu veut decrire et noublie pas de mettre le fichier titres.desc dans le même repertoire

essai avec la page index
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 12:04
il m'indique une erreur de type : Undefined offset: 2 in d:\program files\easyphp1-7\www\crfl91v2\frames_header_inc.php on line 48

J'ai recopié exactement le code tel que tu me l'as donné.
J'y comprend rien.
Mon fichier texte est de type :

Ligne 1 index
Ligne 2 Bienvenue
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 12:15
Ne tenez pas compte du message précédent. J'ai une erreur de syntaxe.
Cela fonctionne sur la page index mais pas sur les autres.
Le titre est inclus dans le header et non pas dans la page directement php qui est afficher. Est-ce pour cela que j'ai un pb
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 12:19
reprise du message avec l'erreur, je l'ai toujours !!!

:blush)
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 12:32
chez moi ca marche a merveille qd le nom du fichier existe dans le fichier titres.desc
donc pour toi tu veut qu'il lit le nom de la page à partir de la balise <title>nom de la page</title>
ok pour ce la laisse moi un peut de temps
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 12:39
Tien tu as de la chance j'ai trouver un ancien script que je l'utilisé pour lire les titres de mes pages

<?
$fp = fopen('internet.htm',"r");
while (!feof($fp)) { $page .= fgets($fp, 4096); }
eregi("<title>(.*)</title>",$page,$regs); //on isole le titre
/* Le titre commence par <title>,
puis contient n'importe quelle chaine,
et se termine par </title> */
$page = $regs[1];
fclose($fp);
$base = file('titres.desc');
for ($n=count($base);$n>-1;$n--)
{if(eregi($page,$base[$n]))
{$desc = ($base[$n+1]);
break;}}
echo $desc;
?>

essai avec celui la maintenant dit moi qu'est ce que ca donne
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 12:40
tu change internet.htm par $PHP_SELF
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 13:09
Le script que tu m'as donné précédemment me convient parfaitement.
Le seul problème est que j'ai une erreur au niveau de la ligne : if(eregi($page,$base[$n])
et je ne comprend pas pourquoi.

Sinon il m'affiche bien le titre mais m'indique l'erreur
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 13:13
par ailleurs comme les fichiers sont dans des répertoires différents, lorsque que j'affiche une page d'un sous répertoire le titre n'apparaît pas.
Pour pallier à cela j'ai créer dans un fichier infos.php que j'inclus au début du fichier une variable $meta_base
qui correspond à mon url de base du site et je lui indique :
$base = file($meta_base."titres.desc");

Mais le titre ne s'affiche quand même pas

:sad)
0
cs_bieuc Messages postés 8 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 20 janvier 2004
20 janv. 2004 à 13:56
petite précision qui a peut être son importance, je suis sous easyphp 1.7
0
cs_jamac Messages postés 40 Date d'inscription mercredi 17 décembre 2003 Statut Membre Dernière intervention 19 juin 2004
20 janv. 2004 à 14:13
envoi moi par email la page qui marche et une autre qui se trouve dans un sous répertoire pour que je les test sur easyphp1.6

email: jamac@fr.st
0
Rejoignez-nous