Javascript Packer 1.1
Par joliclic le mercredi, avril 9 2008, 13:49 - php - Lien permanent
- fr
- en
Mise à jour 1.1 de mon adaptation en php du Packer Javascript de Dean Edwards.
Un bug corrigé, concernant uniquement la version PHP, rapporté par
un utilisateur : une chaîne telle '\0'
compressée puis
décompressée devenait '\'
.
La cause :
en JavaScript :if ('0') alert('true');=> true
else alert('false');
en PHP :
if ('0') echo 'true';=> false.
else echo 'false';
;)
1.1 Update for my PHP port of the Javascript Packer of Dean Edwards.
A corrected bug, concerning only the version PHP, retrieved by a
user: a string like '\0'
packed then unpacked becames
'\'
.
The cause:
in JavaScript:if ('0') alert('true');=> true
else alert('false');
in PHP:
if ('0') echo 'true';=> false.
else echo 'false';
;)
Commentaires
Bravo pour ce script qui est très utile !
Bien qu'il est fonctionné sur 2 de mes scripts, il me génère une erreur : "caractère ; attendu" sur un 3ème script (que j'ai essayé de modifier), sans succès.
Souhaitez-vous que je vous transmette ce script ?
Cordialement,
Anthony
La seule restriction javascript pour utiliser Packer est la suivante :
toutes les déclarations et affectations ("statements" en anglais) doivent être terminé par un point-virgule.
Lisez consciencieusement ces 2 liens de Dean Edwards (l'auteur de la version originale) :
http://dean.edwards.name/packer/usage/
http://dean.edwards.name/packer/usage/sample.html"
Signaler moi si vous avez encore des problèmes malgré ce point ;)
Merci pour votre retour rapide.
J'ai apporté des corrections mais l'erreur persiste...
"La seule restriction javascript pour utiliser Packer est la suivante :
toutes les déclarations et affectations ("statements" en anglais) doivent être terminé par un point-virgule."
merci, ca était important :) Ne pas possible de corriger avec une algoritme?
Merci beaucoup pour le tres bien tool!
@softrare
non, ce n'est pas possible, par concept. Si c'est un problème pour vous, essayez JSMin ;) (qui n'a pas cette restriction)
no, that's not possible, by concept. If it's a problem for you, try JSMin ;) (which doesn't have this restriction)
Merci pour cet outil qui me rend bien des services.
Mais je rencontre un problème lorsque je l'utilise avec PHP, les caractères accentués sont mal "codés". Cette erreur n'apparaît pas lorsque j'utilise la version on-line.
Une idée ?
Quelques litres de café plus loin ... la solution : il suffit de décoder avant l'appel et de ré-encoder ensuite :
$p=new JavaScriptPacker(utf8_decode($s);
return utf8_encode($p->pack());