Le 06/07/2008 09:28, Pierre Maurette a écrit :
Je viens d'installer WAMPSERVER sur ma machine, et du coup j'ai pu
tester...
Pourquoi pas en CLI ?
Euh... ça veut dire en ligne de commande, c'est ça ? Il me semble avoir
déjà lu cette abréviation mais je n'en suis pas sûr.
Si c'était bien ça, il est possible que cela marche aussi, je n'ai pas
encore essayé.
Pour reprendre le langage indépendamment du buzz
HTML, je me suis fait un petit environnement CLI Eclipse/PHPEclipse,
sous Linux et Windows, je n'ai pas encore fait tourner le debugger,
mais c'est bien pratique. Un peu lourd, mais Eclipse est pratiquement
toujours lancé sur mes machines.
J'ai déjà utilisé Eclipse une fois, en cours Java, mais je n'avais pas
beaucoup aimé. Il faut dire que je n'avais pas eu le choix de l'éditeur
et qu'il me manquait la puissance de vim.
Sinon, PSPad + console interne, ou PSPAd + console externe. Ou PHPEdit.
Je ne connais pas tout ça. J'essaierai peut-être un jour, si j'en ai
l'occasion -- et l'envie.
function cmp($a, $b) {
preg_match("/^\s*([0-9]+).*\(([0-9]+)\)\s*[\r\n]+$/", $a, $ma);
preg_match("/^\s*([0-9]+).*\(([0-9]+)\)\s*[\r\n]+$/", $b, $mb);
Quoique ce ne soit pas explicitement demandé, les \s* sont une bonne
idée (surtout en fin de ligne où on ne les voit pas forcément).
return $mb[2] != $ma[2] ? $mb[2] - $ma[2] : $mb[1] - $ma[1];
Oui, si tu veux. Tu gagnes une ligne, mais certains trouveront peut-être
moins lisible la syntaxe avec l'opérateur ternaire. Pour moi les deux se
valent.
Malheureusement(!):
// ...
return $mb[2] - $ma[2] or $mb[1] - $ma[1];;
ne fonctionne pas (forçage des !=0 en 1)
:-D
Il resterait donc:
// ...
$r = $mb[2] - $ma[2] or $r = $mb[1] - $ma[1];
return $r;
Personnellement je n'aime pas. Aller définir et utiliser une variable
juste pour contourner le problème d'utilisation de « or », alors que
rien ne nous oblige à utiliser ce « or », ça me semble aller au devant
des ennuis pour rien : on perd en lisibilité, et si un jour quelqu'un
croit pouvoir améliorer ce code en virant la variable cela créera un
vrai bug (celui que tu as signalé juste au dessus).
J'ai bricolé les regex pour se protéger d'espaces et tab, surtout en
tête de ligne.
Oui, ça c'est bien.
N'existe pas une fonction de pre-compilation des regex (puisqu'on a
deux fois le même) ?
Même réponse que Mickaël :
<cit.
http://fr2.php.net/manual/fr/intro.pcre.php>
Note: Cette extension maintient un cache global par thread des
expressions rationnelles compilées (jusqu'à 4096).
</cit.>