Page 1 sur 1

Problème de syntaxe

Posté : 03 juin 2008, 11:18
par Louis
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..

Posté : 03 juin 2008, 11:25
par guilt92
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 ;)

Posté : 03 juin 2008, 11:36
par Hywan
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 :).

Problème de syntaxe

Posté : 03 juin 2008, 19:20
par Louis
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 ...

Posté : 03 juin 2008, 19:27
par Hywan
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().

Problème de syntaxe

Posté : 03 juin 2008, 20:30
par Louis
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 ...

Posté : 03 juin 2008, 23:13
par Hywan
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 :).

Problème de syntaxe

Posté : 04 juin 2008, 08:33
par Louis
Bonjour,

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

Problème de syntaxe

Posté : 04 juin 2008, 08:54
par Louis
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 ?

Posté : 04 juin 2008, 09:03
par Hywan
Regarde du côté de la fonction implode() si tu ne veux qu'une seule chaîne. Sinon, oriente toi vers list().