Par défaut, Nvu 1.0 reformatte tous les attributs, sauf ceux qui commencent par <?php (les caractères spéciaux sont échappés). Daniel a rajouté une préférence "ne pas encoder les caractères spéciaux dans les attributs", mais je ne comprends pas toujours comment elle fonctionne...
Sur mon poste windaube, seuls les codes suivants sont détruits :
Code : Tout sélectionner
<img <?php print "src="image.php?code=$date""; ?> align="middle" />
<input <?php print "value="$date""; ?> type="hidden" />
<input <?php print "value="$date""; ?> type="hidden" />
mais c'est encore le vieux problème de l'attribut nul (le code PHP doit être inclus dans un élément ou un attribut HTML, mais pas comme ça).
Do-IT a écrit :Donc pour mettre du php dans une valeur il faut pas melanger valeur+php
Je ne constate pas ça sur mon poste windaube ; les codes suivants sont conservés :
Code : Tout sélectionner
<img src="image.php?code=<?php print $date; ?>" align="middle" />
<img src="<?php print "image.php?code=$date"; ?>" align="middle" />
As-tu coché la préférence "ne pas encoder les caractères spéciaux dans les attributs" (paramètres avancés de Nvu) ?
Et dans ces préférences, quels caractères sont encodés comme des entités ?
Do-IT a écrit :ni mettre de " dans le php
C'est un problème un peu plus épineux, car Tidy ajoute des transformations...
Si l'attribut contient des guillemets ("), Nvu l'encode entre des apostrophes, et Tidy s'en débrouille bien (encore que ça dépende des versions de Tidy).
Mais si l'attribut contient des guillemets
et des apostropes, alors Nvu échappe tous les caractères spéciaux, y compris les < et > qui délimitent le code PHP !
Pour moi le vrai problème c'est les guillemets dans le code PHP ; ça me gène particulièrement pour implémenter le hack de l'attribut nul. Le pire, c'est que là je suis en train d'implémenter Tidy sous forme de DLL, et la version de TidyLib que j'utilise fonctionne mal sur ces types de code...
J'ai perdu pas mal de lignes de code HTML en faisant ces tests !
Je suis donc convaincu qu'il y a un gros problème avec ces histoires de guillemets, mais j'ai du mal à le cerner précisément, et je n'ai pas de solution pour l'instant. Je crois qu'il va falloir que je fasse une version de TidyLib spécifique à Nvu, ça sera plus performant et plus sûr.