To content | To menu | To search

Le saviez vous ?

Entries feed - Comments feed

Monday 5 December 2005

Plugin Mozilla/VLC

Le plugin Mozilla/VLC est scriptable en Javascript. Formidable non ? Et en plus il est vachement puissant.

Friday 4 November 2005

Division Euclidienne

function euclid($a, $b) {
 
	$q = floor($a / $b);
	$r = $a % $b;
	
	return array($q, $r);
 
}

Oui ce billet est inutile.

Saturday 27 August 2005

Raccourcis claviers cachés

Pour faire des raccourcis claviers cachés dans une page HTML, c'est à dire non rattachés à un lien via un accesskey, on peut utiliser un lien justement, avec une accesskey, et un display: none en CSS. Cela fonctionne sous firefox. Il en résulte un lien qu'on ne voit pas mais qu'on peut appeler via son accesskey.

<a href="example.html" accesskey="a" style="display: none;">

L'interêt ? Trouvez le vous même.

Friday 12 August 2005

Devmoz et version de Gecko

Le site DevMoz est une véritable mine d'or pour les développeurs web. Le problème, c'est que la partie Javascript de ce site parle de Javascript 1.5, implémenté dans Gecko 1.8. Enfin ce ne serait pas un problème si Gecko 1.8 était releasé, ce qui n'est pas le cas. Dommage.

Tuesday 9 August 2005

cellspacing et CSS

L'équivalent CSS de l'attribut cellspacing de l'élément <table> est border-spacing.

Donc le code CSS suivant:

table {
	padding: 0px;
	border-spacing: 0px;
}

équivaut au code HTML suivant:

<table cellspacing="0">
 
</table>

Tuesday 3 May 2005

Oneliner PHP: htmlentities

Il est possible en PHP de faire des oneliner (comme en perl), par exemple:

/usr/local/bin/php -r 'while ($buffer = fread(STDIN, 1024)) { echo htmlentities($buffer); }'

ce qui peut être pratique quand on veut (par exemple ici) convertir tout un fichier (foobar.txt par exemple) en entités HTML:

cat foobar.txt | /usr/local/bin/php -r 'while ($buffer = fread(STDIN, 1024)) { echo htmlentities($buffer); }' > foobar.txt

Tuesday 19 April 2005

Arguments optionnels en javascript

Il n'est pas possible de définir un argument optionnel dans la déclaration d'une fonction en javascript. Le code suivant n'est pas valide:

function switch_slot(slot, state = false) {
 
	slot.state = state;
 
}

Et retournera l'erreur suivante:

Error: missing ) after formal parameters

A la place on peut faire comme ça:

function switch_slot(slot) {
 
	state = false;
 
	if (arguments.length > 1) {
	
		state = arguments[1];
	
	}
	
	slot.state = state;
 
}

Monday 7 March 2005

Héritage et constantes dynamiques

Deux choses qui n'ont rien a voir en fait, mais qui m'ont bien servi aujourd'hui:

Une prioriété de l'héritage, pas forcément évidente: quand on utilise get_class dans une classe Mère, elle renvoit le nom de la classe Fille. Exemple:

<?php
 
class Mere {
 
	public function __construct() {
	
		print get_class($this);
	
	}
 
}
 
class Fille extends Mere {
 
}
 
$foo = new Fille();
 
?>

Ce script affiche: Fille. Utile.

Autre chose, je cherchais la possibilité d'utiliser mes constantes dynamiquements, a l'instar des variables dynamiques ($$variable;). Il suffit pour se faire d'utiliser la fonction constant:

<?php
 
define('FOO', 'foo');
$const = 'foo';
echo constant($const);
 
?>

Affiche: foo. Utile aussi :)

Friday 4 March 2005

Utiliser le type casting pour valider les données

Si vous vous êtes un tant soit peu renseigné sur la sécurité des applications web écrites en PHP (et c'est valable pour les autres langages de toute façon), vous savez surement qu'un des points primordiaux est la validation des données. Cette validation peut s'avérer très fastidieuse si on s'y prend mal. Je ne rentrerais pas ici dans les détails d'une validation de données sûre et pratique, je dirais juste qu'en utilisant le type casting (c'est à dire la convertion à la volée de type de variables), on peut valider quelques types de données.

Exemple: vous avez une fonction (appelons la __construct, dans une classe donc) qui attend en argument un entier (__construct($id) par exemple). Pour valider $id, vous pouvez tout simplement faire:

$this->id = (int) $id;

Et voilà. Quiconque tentera de passer, par exemple, une chaîne de caractère visant à exploiter une faille XSS perdra son temps, puisque la chaîne sera automatiquement convertie en entier.

Monday 28 February 2005

Un return dans un include

En PHP, vous pouvez utiliser include pour include un fichier de code. Mais saviez vous que vous pouvez inclure un return dans ce fichier ? En ayant par exemple un fichier foo.php contenant:

<?php
return 'foo';
?>

et un fichier bar.php qui contient:

<?php
$foo = include('foo.php');
?>

Quand vous executez bar.php, $foo contient foo. Magique non ?

Friday 18 February 2005

Syntaxe alternative des structures de contrôle

Peu de gens en connaissent l'existence, mais en PHP il existe une syntaxe alternative pour les structures de contrôle (if, while, for, etc). Au lieu d'utiliser des accolades:

if (condition) {
	foo();
}

Vous pouvez utiliser une syntaxe à base de endif:

if (condition):
	foo();
endif;

Avantage ? On gagne en lisibilité.

Monday 7 February 2005

bindings PHP/libssh2

Inauguration d'une nouvelle rubrique: Le saviez vous ?, qui regroupera des one-line-posts, juste pour vous faire part de mes découvertes du moment :-)

On commence par ça:

Il existe une extension ssh2 pour PHP.

page 2 of 2 -