pb de concaténation [PHP] - PHP - Programmation
Marsh Posté le 26-11-2002 à 17:41:34
Perso j'encapsule jamais mon HTML dans le PHP, c'est plutôt du :
if (condition) { ?>
<a href="<? echo $mapage; ?>">blablabla...</a>
<? } ?>
Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes.
Tu vois le truc?
Marsh Posté le 26-11-2002 à 17:44:15
sinon essaye de fermer les guillemets :
print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up".$ligne->id."src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.".$ligne->id."\"></a>";
Marsh Posté le 26-11-2002 à 17:44:55
Fred999 a écrit a écrit : Perso j'encapsule jamais mon HTML dans le PHP, c'est lputôt du : if (condition) { ?> <a href="<? echo $mapage; ?>">blablabla...</a> <? } ?> Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes. Tu vois le truc? |
moi je suis bordélique
je vais essayer d'adapter ta méthode mais j'aurais tellement de page à modifier
merci
Marsh Posté le 26-11-2002 à 17:45:25
Fred999 a écrit a écrit : Avec ça, j'évite quasiment tous les soucis de guillemets/apostrophes. |
par contre la lisibilité en prend un coup, c'est pire que les \" je trouve
Marsh Posté le 26-11-2002 à 17:46:25
webmaster PCPRICE a écrit a écrit : sinon essaye de fermer les guillemets : print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up".$ligne->id."src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.".$ligne->id."\"></a>"; |
je test ça ce soir, je te tiens au courant, merci !
Marsh Posté le 27-11-2002 à 09:40:15
alors en fait j'ai réglé le pb en concaténant dans une variable à part, ct plus simple.
Merci de votre aide
$imagesource=img_up.$ligne->id;
print "<center><br><a href=\"#haut\"onmouseover=\"document.$imagesource.src='images/up_on.gif'\"
onmouseout=\"document.$imagesource.src='images/up_off.gif'\"><img
src=\"images/up_off.gif\" border=\"0\" name=\"$imagesource\"></a>
Marsh Posté le 27-11-2002 à 10:48:06
antp a écrit a écrit : par contre la lisibilité en prend un coup, c'est pire que les \" je trouve |
Là, c'est chacun son staïle
Et j'indente toujours bien mon code, ça aide pas mal
Marsh Posté le 27-11-2002 à 10:50:57
oué mais tu prends de mauvaise habitude. C'est vrai que le php reconnait des variable dans des chaines de texte genre
echo "il fait $temperature degré $lieu, $température_phrase";
mais il est plus propre de voir la différence entre du vrai texte et des variables, d'ailleur avec un editeur de texte a colorification syntaxique tu le voit bien
donc ca donne :
echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase;
cet exemple parce que pour moi :
"il fait 0 degré dans mon bureau, et je me les pêleeeeeeeeeeeeee!!!!!!!!!!!!!!!!!"
Marsh Posté le 27-11-2002 à 11:02:01
webmaster PCPRICE a écrit a écrit : oué mais tu prends de mauvaise habitude. C'est vrai que le php reconnait des variable dans des chaines de texte genre echo "il fait $temperature degré $lieu, $température_phrase"; mais il est plus propre de voir la différence entre du vrai texte et des variables, d'ailleur avec un editeur de texte a colorification syntaxique tu le voit bien donc ca donne : echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase; cet exemple parce que pour moi : "il fait 0 degré dans mon bureau, et je me les pêleeeeeeeeeeeeee!!!!!!!!!!!!!!!!!" |
j'avais fait ce que tu m'as dit mais ça concatenait avec le point ! genre img_up.id et non img_upid
enfin en mettant les guillemets comme tu me l'as indiqué.
Y'a trop de point dans ma fonction c'est le bordel
cela dit je note ta méthode pour d'autres trucs plus simple
Marsh Posté le 27-11-2002 à 11:03:58
Mais euh juste une question, pourquoi y a un point dans le nom ? Ca signifie quoi img_up.$ligne->id ?
Marsh Posté le 27-11-2002 à 11:06:07
Taiche a écrit a écrit : Mais euh juste une question, pourquoi y a un point dans le nom ? Ca signifie quoi img_up.$ligne->id ? |
le . pour concaténer
Marsh Posté le 27-11-2002 à 11:07:14
sinon tu as la methode inverse pour les cas delicat cad mettre le php dans le html et pas l'inverse:
<?
toncode
?>
ton html <?=$variable?> suite html
<?
ton code
?>
c rendu plus facile avec le tag abrégé inspiré de l'asp <%=var%>
plus besoin de faire <? echo var ; ?>
Marsh Posté le 27-11-2002 à 11:09:03
DrWatson a écrit a écrit : le . pour concaténer |
Bin OK mais alors img_up, c'est quoi ? C'est pas une variable passke y a pas $ devant. C'est pas du texte, y a pas de guillemets.... y a un truc qui m'échappe
Marsh Posté le 27-11-2002 à 11:15:26
du javascript?
mais moi non plus je voit pas ou le point d'objet javascript cause pb ,rmq j'ai jamais essayé
Marsh Posté le 27-11-2002 à 11:16:53
Taiche a écrit a écrit : Bin OK mais alors img_up, c'est quoi ? C'est pas une variable passke y a pas $ devant. C'est pas du texte, y a pas de guillemets.... y a un truc qui m'échappe |
c'est le nom de l'objet que je donne à mon image
Marsh Posté le 27-11-2002 à 11:19:13
webmaster PCPRICE a écrit a écrit : echo "il fait ".$temperature." degré ".$lieu.", ".$température_phrase; |
vaut mieux mettre des ' que des " alors, ça évite les problèmes pour mettre les " du HTML, et ça va plus vite vu que PHP n'interprête pas ce qui est entre ' '
Marsh Posté le 27-11-2002 à 11:21:21
ca a toujours été la grande question pour moi
' ou " tel est la question!
et si on se limite a l'utilisation d'un ca evite de s'emmeler le spinceaux.
Marsh Posté le 27-11-2002 à 11:22:04
webmaster PCPRICE a écrit a écrit : ca a toujours été la grande question pour moi ' ou " tel est la question! et si on se limite a l'utilisation d'un ca evite de s'emmeler le spinceaux. |
Marsh Posté le 27-11-2002 à 11:27:15
DrWatson a écrit a écrit : c'est le nom de l'objet que je donne à mon image |
C'est un objet Javascript, donc. Mais côté PHP c'est vu comme du texte, donc ta ligne $imagesource=img_up.$ligne->id; j'comprends pas pourquoi elle marche
Je sais chu pénible mais j'ai comme l'impression que soit il manque des guillemets quelque part, soit PHP a pas besoin de guillemets pour savoir que c'est du texte et là ça me pose un problème d'éthique.
Marsh Posté le 27-11-2002 à 11:37:51
$imagesource= 'img_up'.$ligne->id;
Marsh Posté le 27-11-2002 à 11:40:02
ethernal a écrit a écrit : $imagesource= 'img_up'.$ligne->id; |
Ui là je comprends mieux mais quand DrWatson disait que ça marchait avec ce qu'il avait mis (sans les quotes, cf 7ème post), j'ai eu peur de ne plus rien comprendre au PHP
Marsh Posté le 27-11-2002 à 11:45:17
Taiche a écrit a écrit : Ui là je comprends mieux mais quand DrWatson disait que ça marchait avec ce qu'il avait mis (sans les quotes, cf 7ème post), j'ai eu peur de ne plus rien comprendre au PHP |
bein ça marche vraiment mon truc !
Marsh Posté le 27-11-2002 à 11:47:01
DrWatson a écrit a écrit : bein ça marche vraiment mon truc ! |
SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ?
Marsh Posté le 27-11-2002 à 12:06:07
Taiche a écrit a écrit : SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ? |
Théoriquement, ca marche.
Comme ce n'est ni une variable (pas de $ devant) ni une fonction (pas de () derrière) ni un mot réservé, il considère ça comme du texte (du moins d'après ce que j'avais lu il y a quelques temps). Seul problème (hors le fait que le code devient vite illisible), c'est que le jour ou un mot réservé suplémentaire est rajouté, il va se chopé sa valeur au lieu du texte et là, il viendra gueulé que ca marche plus sans savoir pourquoi.
Il me semble que j'avais lu ça dans mon bouquin php&mysql (a moins que ca soit dans un tutoriel) mais une chôse est sur, c'est très déconseillé.
EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé.
Marsh Posté le 27-11-2002 à 12:21:00
Taiche a écrit a écrit : SANS les quotes ou les guillemets ? J'veux dire tu fais $imagesource=img_up.$ligne->id; et pas $imagesource= 'img_up'.$ligne->id; ? |
j'ai fait $imagesource=img_up.$ligne->id; et ça fonctionne mais l'autre doit fonctionner aussi mais j'ai pas essayé
Marsh Posté le 27-11-2002 à 12:22:02
omega2 a écrit a écrit : Théoriquement, ca marche. Comme ce n'est ni une variable (pas de $ devant) ni une fonction (pas de () derrière) ni un mot réservé, il considère ça comme du texte (du moins d'après ce que j'avais lu il y a quelques temps). Seul problème (hors le fait que le code devient vite illisible), c'est que le jour ou un mot réservé suplémentaire est rajouté, il va se chopé sa valeur au lieu du texte et là, il viendra gueulé que ca marche plus sans savoir pourquoi. Il me semble que j'avais lu ça dans mon bouquin php&mysql (a moins que ca soit dans un tutoriel) mais une chôse est sur, c'est très déconseillé. EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé. |
donc préférer ' ou " ?
Marsh Posté le 27-11-2002 à 12:35:47
DrWatson a écrit a écrit : donc préférer ' ou " ? |
Moi, je préfaire ", ca permet d'utiliser les caractères spéciaux tel que \n quand on en a besoin (avec ' il considère qu'il y a deux caractères le \ et le n et pas un retour à la ligne).
Marsh Posté le 27-11-2002 à 12:37:08
omega2 a écrit a écrit : Théoriquement, ca marche. [...] EDIT : Ca y est, je me souviens à quelle occasion j'avais lu ça : c'était pour les variable tableau ou $tab[texte] a exactement le même comportement et la même signification que $tab["texte"] tant que texte n'est pas un mot réservé. |
Eh ba bordel, j'savais pas ça, c'est carrément crade. J'comprends pas que ça soit autorisé, c'est un nid à bugs monstrueux.
DrWatson : oui, effectivement, je te conseille les " ou les '. Comme le dit omega2, ton code sera plus lisible et t'auras pas de bug si jamais un mot réservé est ajouté.
Marsh Posté le 27-11-2002 à 12:39:32
moi c " parceque dans des texte j'utilise plus ' que "
exemple:
echo "c'est pas la joie";
est plus rapide que
echo 'c\'est pas la joie'
et puis le ' est plus eloigné de mon index que le "
Marsh Posté le 27-11-2002 à 12:40:30
Taiche a écrit a écrit : Eh ba bordel, j'savais pas ça, c'est carrément crade. J'comprends pas que ça soit autorisé, c'est un nid à bugs monstrueux. DrWatson : oui, effectivement, je te conseille les " ou les '. Comme le dit omega2, ton code sera plus lisible et t'auras pas de bug si jamais un mot réservé est ajouté. |
Ca rajoute de la souplesse au langage.
Par contre, c'est sur que pour avoir un code propre, c'est pas le top.
Marsh Posté le 27-11-2002 à 12:43:42
omega2 a écrit a écrit : Ca rajoute de la souplesse au langage. Par contre, c'est sur que pour avoir un code propre, c'est pas le top. |
alors je met ' ou " à la place de rien ?
et si je met des ", ne devrais-je pas mettre \" ?
Marsh Posté le 27-11-2002 à 12:43:52
omega2 a écrit a écrit : Ca rajoute de la souplesse au langage. |
Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste
J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne
Marsh Posté le 27-11-2002 à 12:45:38
Taiche a écrit a écrit : J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne |
[+]
Marsh Posté le 27-11-2002 à 12:55:14
Taiche a écrit a écrit : Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne |
bah tu optiens de l'asp dans ce cas la
Marsh Posté le 27-11-2002 à 12:57:18
Taiche a écrit a écrit : Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne |
ça marche sans les ;
Marsh Posté le 27-11-2002 à 13:02:15
DrWatson a écrit a écrit : alors je met ' ou " à la place de rien ? et si je met des ", ne devrais-je pas mettre \" ? |
Si tu mets des ", tu devras mettre un \" à chaque fois que t'en as un dans ton texte.
Mais si tu mets des ', tu devras mettre un '' (il me semble que c'est ça le caractère magique) à chaque fois que t'as un ' dans ton texte.
Marsh Posté le 27-11-2002 à 13:03:03
DrWatson a écrit a écrit : ça marche sans les ; |
non, sans les ; ca marche pas, faut quand même un minimum de logique dans ce langage.
Marsh Posté le 27-11-2002 à 13:03:56
Taiche a écrit a écrit : Ah ba ça, la souplesse elle est bien aidée, d'un coup ! Limite contortionniste J'suggèrerais bien aussi qu'ils virent les ; c'est chiant de les foutre à chaque fin d'ligne |
Bonne idée, et puis aussi qu'ils virent tout les $ et les (), c'est chiant de devoir en mettre partout.
Marsh Posté le 26-11-2002 à 15:02:02
Voilà, j'ai un souci pour concaténer img_up et ma variable comprise dans $ligne->id à cause des "." la concaténation ne se fait pas, que dois-je rajouter pour que cela fonctionne ? (ça me fait des erreus de script dans ie et le roller over n'a pas lieu justement.
print "<a href=\"#haut\"onmouseover=\"document.img_up.src='images/up_on.gif'\" onmouseout=\"document.img_up.$ligne->id.src='images/up_off.gif'\"><img src=\"images/up_off.gif\" border=\"0\" name=\"img_up.$ligne->id\"></a>";
---------------
.:: Feed-Back ::. Choisis un travail que tu aimes, et tu n'auras pas à travailler un seul jour de ta vie.