Problème de syntaxe

Louis
Invité n'ayant pas de compte PHPfrance

03 juin 2008, 11:18

Bonjour,

Comment écrire correctement le code suivant :

Code : Tout sélectionner

"http://www.levangileauquotidien.org/ind-gospel-d.php?language=FR&return_url=http://monsite.free.fr/texte.php&day=echo '$x';&month=4&year=2008"));
J'ai bien testé auparavant, la variable $x qui est égale à 9. C'est peut-être la syntaxe de cette variable, qui pose problème. J'ai testé également en supprimant le ; après echo '$x'.
J'ai toujours : "Erreur à la ligne n°33"

Merci pour votre aide..

Mammouth du PHP | 1353 Messages

03 juin 2008, 11:25

Tu peux utiliser le . pour concaténer des chaines et des variables en php.

Par exemple :
$id = 9;
echo "http://www.monsite.com?page=".$id;
echo "Id vaut : ".$id.", ce qui est une bonne chose";
Si tu as besoin que cette variable soit affichée entre " " tu as deux options :

utilser les '' :
echo "La valeur de id est '".$id."'";
ou utiliser le \ pour ne pas prendre en compte un signe " :
echo "La valeur de id est \"".$id."\"";
voila, avec tout ca tu devrais y arriver ;)
Tell me and I forget. Teach me and I remember. Involve me and I learn.

ViPHP
ViPHP | 4674 Messages

03 juin 2008, 11:36

Hey :),

Regarde avec la colorisation syntaxique, tu y verras plus claire.

Il faut utiliser un procédé que l'on appelle la concaténation. Consulte le manuel pour bien comprendre les chaînes de caractères.

On veut écrire « Bonjour (ou bonsoir) Mam'zelle » :
$intro = 'Bonjour';
// on commence par afficher notre variable, puis notre chaîne.
echo $intro . ' Mam\'zelle';
Maintenant, afficher la variable entre deux chaînes (même procédé) :
echo 'Le Monsieur dit : « ' . $intro . ' Mam\'zelle ».';
Tu noteras que l'on échappe l'apostrophe (simple, a contrario de double) de Mam'zelle (on échappe en ajoutant un backslash devant). Le dernier exemple produit la chaîne :

Code : Tout sélectionner

Le monsieur dit : « Bonjour Mam'zelle ».
Pour rappel, le caractère   est un espace insécable (juste une question de règle de typographie, pas important).

Bien, maintenant, retournons sur ton problème. On devrait écrire :
echo 'http://premiersite…&return_url=http://secondsite.tld/texte.php&day=' . $x . '&month=4&year=2008';
Attention, les variables day, month, etc., ne concerne pas secondsite mais premiersite ! Attention avec ça. Je te conseille d'encoder la valeur de return_url en utilisant la fonction url_encode().
Ici, j'ai proposé une solution avec des guillemets simples, mais on peut aussi le faire avec des doubles :
echo "http://…&return_url=http://secondesite.tld/text.php&day=$x&month=4&…";
Attention encore une fois, les guillemets doubles sont plus long à interprété que les simples car il va « tester » chaque caractère

Mais commence par me dire si tu comprends ton problème de concaténation :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Louis
Invité n'ayant pas de compte PHPfrance

03 juin 2008, 19:20

Bonsoir,

Après plusieurs essais j'ai toujours une erreur dans la syntaxe suivante :

Code : Tout sélectionner

<?php echo utf8_encode (file_get_contents ('http://www.levangileauquotidien.org/ind-gospel-d.php?language=FR&return_url=http://monsite.free.fr/texte.html&day='.$x.'&month=4&year=2008')); ?>
En vous remerciant pour votre aide ...

ViPHP
ViPHP | 4674 Messages

03 juin 2008, 19:27

Le code que tu donnes fonctionne, je viens de l'essayer. Il récupère bien le contenu de la page et l'affiche.

Je crois que ton erreur n'est pas une erreur de syntaxe. Peux-tu nous coller ici l'erreur que tu as à l'écran :) ? Je soupçonne l'erreur de venir de la fonction file_get_contents().
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Louis
Invité n'ayant pas de compte PHPfrance

03 juin 2008, 20:30

Bonsoir,

L'erreur est la suivante :
Warning: mktime() expects parameter 5 to be long, string given in /home/www/evangelizo/main/ind-gospel-d.php on line 33
En vous remerciant ...

ViPHP
ViPHP | 4674 Messages

03 juin 2008, 23:13

Hey :),

Cette erreur ne t'indique pas une erreur de syntaxe. Elle te dit que la fonction mktime() attend que le cinquième paramètre soit de type long, et malheureusement, tu lui as donné une chaîne de caractère (string).
Il ne faut donner que des entiers à la fonction mktime, et pas une chaîne de caractère. On sait déjà que c'est le cinquième argument qui pose problème. Si tu n'as pas à résoudre le problème, donnes-nous au moins la ligne qui comprend l'appel à la fonction mktime. Cette fonction est appelée dans le fichier ind-gospel-d.php à la ligne 33 :).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Louis
Invité n'ayant pas de compte PHPfrance

04 juin 2008, 08:33

Bonjour,

Voici tout mon code :
echo utf8_encode (file_get_contents ("http://www.levangileauquotidien.org/ind ... tle_bold=1"));
Encore merci ...

Louis
Invité n'ayant pas de compte PHPfrance

04 juin 2008, 08:54

Bonjour,

Pourriez-vous me rappeler comment on transforme le contenu de $x qui contient 9 sous forme d'une chaîne de caractères en un nombre de valeur 9 ?
Peut-être que l'erreur vient de là ...
En vous remerciant ?

ViPHP
ViPHP | 4674 Messages

04 juin 2008, 09:03

Regarde du côté de la fonction implode() si tu ne veux qu'une seule chaîne. Sinon, oriente toi vers list().
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).