Loading ...
[Plus récent] [Plus ancien] [Meilleur rang] [Mauvais rang]

PCR Postit

PHP

::

Benchmark touch vs file_put_contents

[Trackback]
Date : 2008-05-28@14:54:59
Rang : 0

Dans la série question existentielle :

touch vs file_put_contents

le code de test :

<?php

$time = time() + microtime();

for ($i = 0 ; $i < 10000; $i++)

{

        file_put_contents('test.txt','www.deezer.com Tu peux te

        créer ta propre

        playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra

        ve, tu peux quand meme écouter de la musique.

        Simple dutilisation,

        lit toutes les musiques de

        la dernière recherche

        les unes après les autres.');

}

var_dump(time() + microtime() - $time);

$time = time() + microtime();

for ($i = 0 ; $i < 10000; $i++)

{

        touch('test.txt');

}

var_dump(time() + microtime() - $time);

?>

Les résultats :

file_put_contents 0.41347002983093

touch 0.071331977844238

Soit 6 fois plus rapide, l'application directe de ce test est que l'on évite l'écriture en cache d'un objet si celui ci n'a pas changer et on le revalide par un touch.

Pour vérifier que le cache n'a pas changer il faut bien sur lire le cache même quand il n'est plus valide.

Ce qui donne le code de bench suivant :

<?php

$time = time() + microtime();

for ($i = 0 ; $i < 10000; $i++)

{

        file_put_contents('test.txt','www.deezer.com Tu peux te

        créer ta propre

        playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra

        ve, tu peux quand meme écouter de la musique.

        Simple dutilisation,

        lit toutes les musiques de

        la dernière recherche

        les unes après les autres.');

}

var_dump(time() + microtime() - $time);

$time = time() + microtime();

for ($i = 0 ; $i < 10000; $i++)

{

        file_get_contents('test.txt');

        touch('test.txt');

}

var_dump(time() + microtime() - $time);

?>

Les résultats :

file_put_contents 0.51197385787964

touch + file_get_contents 0.3950469493866

Le gain est minime cette fois mais c'est toujours ça de pris :D

Javascript

::

date format en javascript

[Trackback]
Date : 2008-05-14@14:47:02
Rang : 0

Cette fonction javascript format une date javascript à la manière de la fonction php.

Les formats supportés sont limité à d m Y h i s de la fonction date de php.

function dateFormat(format,date)
{
        if(date == undefined)
        {
                date = new Date();
        }
        if(typeof date == 'number')
        {
                time = new Date();
                time.setTime(date);
                date = time;
        }
        else if(typeof date == 'string' )
        {
                date = new Date(date);
        }
        var fullYear = date.getYear();
        if (fullYear < 1000)
        {
                fullYear = fullYear + 1900;
        }
        var hour = date.getHours();
        var day = date.getDate();
        var month = date.getMonth()+1;
        var minute = date.getMinutes();
        var seconde = date.getSeconds();
        var milliSeconde = date.getMilliseconds();
        var reg = new RegExp('(d|m|Y|H|i|s)','g');
        var replacement = new Array();
        replacement['d'] = day < 10 ? '0'+ day : day;
        replacement['m'] = month < 10 ? '0'+ month : month;
        replacement['Y'] = fullYear;
        replacement['Y'] = fullYear;
        replacement['H'] = hour < 10 ? '0'+ hour : hour;
        replacement['i'] = minute < 10 ? '0'+ minute : minute;
        replacement['s'] = seconde < 10 ? '0'+ seconde : seconde;
        return format.replace(reg,function ($0){return ($0 in replacement) ? replacement[$0] : $0.slice(1, $0.length - 1);});
}

Javascript

::

Un début de unserialize en PHP

[Trackback]
Date : 2008-05-14@14:40:33
Rang : 0

Le script ci dessous permet de désérialiser uniquement les tableaux de chaine.

C'est à dire les tableau du genre de celui ci :

<?php

$tableau = array("clé 1"=> "valeur 1","clé 2"=> "valeur 2")

?>

function unserialize(inData)

{

        var outData = false;

        var stringMatches = inData.match(/s:[0-9]+:".*?";s:[0-9]+:".*?";/g);

        if(stringMatches != null)

        {

                outData = new Array()

                for(var i = 0; i < stringMatches.length; i++)

                {

                        var match = stringMatches[i].match(/s:[0-9]+:"(.*?)";s:[0-9]+:"(.*?)";/);

                        if(match != null)

                        {

                                outData[match[1]] = match[2];

                        }

                }

        }

        return outData;

}

La fonction retourne false en cas d'échec.

Javascript

::

Un début de unserialize en PHP

[Trackback]
Date : 2008-05-14@14:40:17
Rang : 0

Le script ci dessous permet de désérialiser uniquement les tableaux de chaine.

C'est à dire les tableau du genre de celui ci :

<?php
$tableau = array("clé 1"=> "valeur 1","clé 2"=> "valeur 2")
?>

function unserialize(inData)
{
        var outData = false;
        var stringMatches = inData.match(/s:[0-9]+:".*?";s:[0-9]+:".*?";/g);
        if(stringMatches != null)
        {
                outData = new Array()
                for(var i = 0; i < stringMatches.length; i++)
                {
                        var match = stringMatches[i].match(/s:[0-9]+:"(.*?)";s:[0-9]+:"(.*?)";/);
                        if(match != null)
                        {
                                outData[match[1]] = match[2];
                        }

                }
        }
        return outData;
}

La fonction retourne false en cas d'échec.

Linux

::

Configuration de ndiswrapper pour utilisation du WPA avec les cartes mini pci cisco sur mon thinkpad X31

[Trackback]
Date : 2008-04-19@14:24:43
Rang : 0

J'ai enfin réussi à faire marcher le wpa sur mon portable X31 sous Ubuntu Gusty.

La marche à suivre se trouve en anglais ici

Je traduis pour les non anglophones

Telecharger le driver cisco ici et désarchiver le dans votre home par exemple.

Installer ndiswrapper

sudo apt-get install ndiswrapper-utils-1.9

Blacklister le driver airo

echo 'blacklist airo' | sudo tee -a /etc/modprobe.d/blacklist

Décharger le driver airo du noyau

sudo rmmod airo

Charger le driver windows dans ndiswrapper

sudo ndiswrapper -i pathto/netA504.inf

Sauvegarder la conf ndiswrapper

sudo ndiswrapper -m

sudo ndiswrapper -ma

sudo ndiswrapper -mi

Charger ndiswrapper dans le noyau

sudo modprobe ndiswrapper

Linux

::

Récupéré un fichier effacé grace à Foremost

[Trackback]
Date : 2008-04-11@19:31:15
Rang : 0

Foremost est un outil qui permet de récupérer les fichiers effacés sous linux même par la commande rm.

Un tutorial simple et efficace sur comment s'en servir est disponible chez korben (merci pour la découverte de ce soft qui peut toujours servir) :

Récupérer des fichiers effacés sous Linux

Video

::

Google devient Hébergeur

[Maximiser] [Trackback]
Date : 2008-04-08@11:27:51
Rang : 0