-
mars 7th, 2012DéveloppementVoilà une info astucieuse pour les flémards qui ne veulent pas passer leur temps à récupérer les infos de partout! Parce qu’un dev flémard,
c’est le meilleur!
Vous pouvez récupérer la
liste dans de nombreux formats, tels que
- Text
- JSON
- YAML
- XML
- HTML
- CSV
- SQL
- PHP
- MySQL
- SQLite
- SQL Server
Rien que ça!!
A trouver sur Umpirsky Software development blog
Tags: country list, json, MySQL, pays, php, yaml -
mars 7th, 2012PHPVoici quelques fonctions qui vont retourner la date de la veille en PHP. Et dans la foulée, une fonction qui retourne une date à plus ou moins
X jours!
function getYesterday() { return date('Y-m-d', time() - (60*60*24)); } function getYesterday() { return date('Y-m-d', strtotime('yesterday')); } function getYesterday() { return date('Y-m-d', strtotime('-1 day')); }Voici la fonction qui
retourne une date à plus ou moins x jours (par défaut, la veille)
function getDayDiff($diff = '-1') { //$diff doit être au format +X ou -X, X étant un entier return date('Y-m-d', strtotime($diff.' day')); }Tags: date, fonction, php -
mars 1st, 2012PHPParlons un peu de ce que l’on peut trouver sur le net en terme d’optimisation PHP, quelques articles TRES utiles:
- Un HOW-TO à base de benchmark, de conf Apache, et de bonnes idées en tous genres chez PHPLens
- Une liste des meilleures pratiques (les meilleures façons d’utiliser echo, quelle fonction pour calculer la taille d’une
chaîne, etc..) chez Chazzuza
- En français cette fois, chez Vulgarisation-Informatique un benchmark des différentes fonctions de base de PHP, buy cialis online low price pour choisir la meilleure!
Tags: benchmark, développement, optimiser, php -
octobre 21st, 2010SOAPDepuis l’apparition des librairies SOAP en PHP, l’appel de web services est devenu franchement simple.
Là ou cela peut devenir compliqué, c’est lorsque l’on doit utiliser HTTPS et un certificat pour crypter les données…
On se voit souvent fournir un certificat PKCS12 alors que la librairie PHP n’utilise que des certificats en PEM.
Le format PKCS12 est en fait un fichier qui contient à la fois le certificat et la clé privée, vous allez donc devoir extraire les infos PEM de ce paquet.Vous
allez pouvoir le faire simplement en utilisant la commande openssl sur votre serveur Linux.
openssl pkcs12 -nodes -clcerts -in certificate.p12 -out certificate.pem
Il ne vous reste plus qu’à invoquer ce certificate.pem
$client = new SoapClient('wsdl', array('local_cert' => "/path/to/certificate.pem"));Et voilà!!!
Tags: certificat, développement, p12, pem, php, pkcs12, soap, web service -
octobre 11th, 2010PHPsubstr:
substr est une fonction qui retourne une sous-chaîne d’une chaîne de caractères.
substr(string $chaine, int $debut, int $longueur)
$chaine: représente la chaîne de caractères initiale.
$debut: est l’index de début de la cha
îne de caractères qu’on veut extraire. Si $debut est négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne.
Si $debut dépasse la longueur de la chaîne
de caractères, alors substr retournera une chaîne vide.
$longueur: est
un paramètre optionnel qui indique la longueur de la chaîne de caractères à extraire.
Exemples:
<?php $ma_chaine = "je ne veux pas travailler"; $ma_sous_chaine = substr($ma_chaine, 3); echo ($ma_sous_chaine); // retournera "ne veux pas travailler" $ma_sous_chaine = substr($ma_chaine, 2); echo ($ma_sous_chaine); // retournera " ne veux pas travailler" $ma_sous_chaine = substr($ma_chaine, 0,2); // on extrait une chaine d'une longueur de 3 chars à partir de l'indice 0 echo ($ma_sous_chaine); // retournera "je" $ma_sous_chaine = substr($ma_chaine, -4); echo ($ma_sous_chaine); // retournera "ller" $ma_chaine = "abcdefghi"; $ma_sous_chaine = substr($ma_chaine, -4); // retournera "fghi" $ma_sous_chaine = substr($ma_chaine, -4,2); // retournera "fg" ?>
Tags: chaîne de caractères, php, substr -
octobre 7th, 2010PHPPhp.ini
php.ini est le
fichier de configuration du moteur php5.
Il contient des dizaine de directives. Chaque directive a une signification et un rôle particulier.
Le fichier php.ini est un fichier de type ini. C’est un fichier texte
divisé en plusieurs sections et chaque section contient un ceratin nombre de paramètres de configuration.
Une section commence par [nom_de_la_section]
Une directive est sous la forme: paramètre = valeur
Les lignes qui commencent par ; sont des commentaires.
à l’installation du moteur php le fichier php.ini se trouve dans /etc/php5/apache2/php.ini sous debain.
Read the rest of this entry »Tags: php, php.ini -
octobre 7th, 2010PHPPhp5 propose un ensemble de fonctions pour obtenir, traiter et formater les dates.
Nous vous proposons ici un tour des fonctions les plus utilisée.
Date:
date() est sans doute la fonction la plus utilisée. Elle permet d’obtenir une date
à partir d’un timestamp unix.
date($format, $timestamp) prend 2 parmaèttres:
$format: le format de sortie de la date.
Les jours :
d : 01 à 31
D : Mon à Sun
j : 1 à 31
l : (‘L’ minuscule) en anglais Sunday à Saturday
N : 1 (pour Lundi) à 7 (pour Dimanche)
S : st, nd, rd ou th.
w : 0 (pour dimanche) à 6 (pour samedi)
z canadian pharmacy no prescription : 0 à 366
Read the rest of this entry »Tags: années PHP5, dates, jours php5, mois php5, php, semaines php5, timestamp php, timezone -
octobre 5th, 2010NginXphp5-cgi:
Installer php5-cgi:
Installer php5 et les modules nécessaires à l’exécution de votre application web (choisissez les modules dont votre application web a besoin pour fonctionner):
#apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
Configurer Php5-cgi:
Editer le fichier « /etc/php5/cgi/php.ini » et ajouter la ligne suivante :
cgi.fix_pathinfo = 1
Créer le lanceur du cgi php5 /etc/init.d/php-fastcgi avec le contenu suivant :
#! /bin/sh ### BEGIN INIT INFO # Provides: php-fastcgi # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start and stop php-cgi in external FASTCGI mode # Description: Start and stop php-cgi in external FASTCGI mode ### END INIT INFO # Do NOT "set -e" PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="php-cgi in external FASTCGI mode" NAME=php-fastcgi DAEMON=/usr/bin/php-cgi PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Exit if the package is not installed [ -x "$DAEMON" ] || exit 0 # Read configuration variable file if it is present [ -r /etc/default/$NAME ] && . /etc/default/$NAME # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. . /lib/lsb/init-functions # If the daemon is not enabled, give the user a warning and then exit, # unless we are stopping the daemon if [ "$START" != "yes" -a "$1" != "stop" ]; then log_warning_msg "To enable $NAME, edit /etc/default/$NAME and set START=yes" exit 0 fi # Process configuration export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT" do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --background --make-pidfile --chuid $EXEC_AS_USER --startas $DAEMON -- $DAEMON_ARGS || return 2 } do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE > /dev/null # --name $DAEMON RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esacTags: apt-get, debian, Nginx, php, php5-cgi, serveur http, serveur web -
octobre 4th, 2010PHPZend framework (ZF):
ZF est l’un des frameworks php les plus utilisés dans le développement d’applications web avec PHP5. C’est à la fois un moyen simple, puissant et structuré qui permet de gagner beaucoup de temps dans vos développements.
Il peut être utilisé de 2 façons différentes:
1- En se servant de ses composants individuellement.
2- En se servant de son implémentation du model MVCDans notre exemple nous allons vous montrer comment se servir des deux modules Zend_Application et Zend_Tool.
Prérequis:
1- Système d’exploitation Linux ou windows (dans notre article on utilisera une debian lenny)
2- Unserveur web apache2.
3- php5.
4- Mysql5.Tags: guide, php, Tutoriel, Zend framework, Zend_Application, Zend_Tool -
septembre 30th, 2010PHPUn site internet qui fait 1000 visites par jour sollicite autant de fois votre serveur pour afficher à chaque fois la page d’accueil.
Pour soulager votre serveur, il est judicieux d’utiliser un système de cache, qui va stocker une « image » de vos pages à la première visite et servir cette image aux prochains visiteurs.
On évite des requêtes en trop, de la charge processeur, etc… que du bénéfice.D’après le site php.net
Le « Alternative PHP Cache » (APC) est un cache d’opcode libre et ouvert pour PHP. Son objectif est de fournir un framework libre, ouvert et robuste pour la mise en cache et l’optimisation de code intermédiaire PHP.
(plus d’informations sur le site de php.net http://php.net/manual/fr/book.apc.php)Il existe également d’autres systèmes de cache beaucoup plus puissants, tels que memcached ou encore varnish. Ils ne jouent pas tous au même niveau, certains font du cache HTTP, d’autres peuvent faire du cache SQL également.
Je vous conseille au préalable de faire un benchmark d’une URL de votre site pour faire un comparatif avant/après et constater que vous êtes extrêmenet satisfait de cet article ô combien utile :p
Vous pouvez effectuer ce benchmark avec http://webwait.com/ par exemple. C’est moins précis qu’un apache bechmark, mais c’est bien plus simple.Voici donc le moyen de mettre en place APC sur votre serveur Debian
APC est disponible via PECL, outil qui est lui-même fourni par l’ensemble de classes PEAR.apt-get install php5-dev php-pear pecl install apc
Il est fort probable que la commande vous pose la question suivante:
Use apxs to set compile flags (if using APC with Apache)? [yes]
Répondez yes si vous utilisez Apache, no sinon
Créez ensuite le fichier
vi /etc/php5/apache2/conf.d/apc.ini
et insérez dans le fichier
extension=apc.so
Maintenant redémarrez votre serveur Apache
/etc/init.d/apache2 restart
Voilà, APC est installé et fonctionne avec votre serveur Apache2 et PHP
Vous pouvez accéder à un ensemble
de statistiques fournies par APC
Pour cela, copiez le fichier de statistiques vers un répertoire accessible par URL (ou plus simplement le DocumentRoot). Puis éditez le fichier pour changer le mot de passe à votre convenance.cp /usr/share/php/apc.php /chemin/vers/le/document/root/apc.php vi /chemin/vers/le/document/root/apc.php
il faut modifier les lignes:
defaults('ADMIN_USERNAME','admin'); defaults('ADMIN_PASSWORD','password');Accédez y par l’url correspondant au DocumentRoot http://url…/apc.php
Et voilà les jolies stats!
Tags: apc, cache, debien, optimiser, php
