PHP
Formater un tableau pour CURLOPT_POSTFIELDS
Envoyer un array en POST avec cURL
23 mars 2017
Le tableau de paramètres que l'on doit passer dans l'option CURLOPT_POSTFIELDS de cURL a un format particulier pour les paramètres qui sont eux-mêmes des tableaux.Contrairement à la fonction PHP http_build_query qui travaille directement avec des tableaux associatifs, pour cURL le tableau ... lire la suite
Email avec pièce jointe en PHP
Envoyer des fichiers grâce à la fonction mail.
16 mars 2017
Envoyer un mail en PHP est globalement assez simple grâce à la fonction mail. Il est en revanche plus compliqué d'ajouter une pièce jointe. Le corps du mail doit ainsi respecter une structure très particulière dont les blocs sont délimités par des chaînes de caractères : les frontières. Nous auron ... lire la suite
PHP : modifier les attributs privés d'un objet
Utilisation des fonctions anonymes pour accéder aux attributs protégés d'une instance.
28 décembre 2016
Pour modifier ou simplement accéder à un attribut privé ou protégé d'un objet, il suffit de créer une fonction anonyme et de les lier ensemble. La méthode Closure::bindTo de PHP, si on lui passe l'objet en premier et second paramètre, permet de simuler l'appartenance de notre nouvelle foncti ... lire la suite
Tester l'existence d'un fichier dans l'include path
Utiliser stream_resolve_include_path au lieu de file_exists.
07 mai 2016
PHP permet de modifier le chemin d'inclusion "include_path" des fichiers. L'include path n'est toutefois pas pris en compte par toutes les fonctions de manipulation de fichiers : par exemple file_exists exige un chemin absolu complet.Heureusement, la fonction stream_resolve_include_path p ... lire la suite
Convertir récursivement un objet PHP en tableau
Caster un objet et ses attributs
07 mai 2016
Il n'existe pas de méthode native pour caster un objet récursivement en tableau. Voici une petite fonction qui transformera tous vos objets ainsi que leurs attributs en tableaux. Pour ne pas avoir de surprise avec cette fonction, je vous conseille de bien lire le manuel de get_object_vars.... lire la suite
PHP : formater un tableau en CSV
Comment convertir un tableau PHP dans le format csv ?
12 octobre 2014
PHP dispose nativement de plusieurs fonctions pour manipuler le format CSV : fgetcsv, fputcsv, str_getcsv etc... La fonction str_getcsv est très pratique pour obtenir un tableau PHP à partir d'une ligne formatée en CSV. Malheureusement PHP ne possède pas encore de fonction "str_putcsv" pour fair ... lire la suite
Comment envoyer un mail en ligne de commande ?
La commande mail en bash pour utiliser dans un script shell.
04 juin 2014
Pour pouvoir utiliser la fonction mail de linux, il faut avoir configuré au préalable un serveur de messagerie : postfix, sendmail etc...Envoyer un email avec la commande mail de linux# Ecrire un message directement.echo "mon message" | mail -s "le sujet du mail" "destinataire1@d ... lire la suite
RSYNC : Comment synchroniser des fichiers à travers une connexion ssh ?
Envoyer un fichier sur une machine distante grâce à rsync en SSH ou en mode démon
04 juin 2014
Rsync est un logiciel de synchronisation de fichiers entre une ou plusieurs machines. Rsync permet de transférer des fichiers via un protocole de shell distant (rsh, ssh) mais il peut aussi fonctionner en mode client / serveur démon. En mode démon, rsync utilise son protocole natif pour le trans ... lire la suite
Exécuter un code PHP en ligne de commande
Afficher le phpinfo dans un terminal
23 mai 2014
Interpréter un code PHP directement dans le terminalphp -r "echo phpinfo();"php -r "for (\$i = 0; \$i < 10; \$i++) echo \$i;"N'oubliez pas d'échapper les caractères spéciaux de bash comme le $.A bientôt ! :)... lire la suite
Doctrine 2 : générer les classes PHP depuis la base de données
Créer une entité doctrine directement depuis une base SQL
23 mai 2014
Vous souhaitez utiliser Doctrine 2 sans passer par un format type YAML ?Ce tutoriel explique comment générer directement les classes de vos entités doctrine en parcourant (reverse engineering) une base de données SQL.Toutes les commandes ci-dessous doivent être lancées depuis le dossier ... lire la suite
Comment catcher les erreurs en PHP ?
Faire un rattrapage ou une sortie propre en cas de notice, warning ou fatal error.
15 mai 2014
Ce tutoriel a pour but d'expliquer comment attraper proprement les notices, warnings et erreurs qui peuvent survenir pendant vos programmes.PHP dispose nativement de 15 types d'erreurs et du type E_ALL qui les regroupe tous. Nous allons faire en sorte d'envoyer une exception lorsque l'une ... lire la suite
Doctrine 2 : comment afficher la requête SQL ?
Débuguer la requête SQL générée par Doctrine 2 très facilement
08 avril 2014
Bien que très performant, Doctrine 2 peut parfois être compliqué à utiliser si on ne sait pas comment débuguer les appels qu'il génère.Doctrine fournit par défaut l'interface Doctrine\DBAL\Logging\SQLLogger qui est implémentée par tous les loggers qui manipulent les requêtes SQL. Nativement ce ... lire la suite
Comment construire une URL sans caractères spéciaux en PHP ?
De belles URL en 15 lignes de code !
13 janvier 2014
Même si la plupart des navigateurs le permettent, il est fortement déconseillé d'avoir des caractères spéciaux dans une URL. Le code ci-dessous remplace intelligemment ces caractères spéciaux par leurs équivalents.Remplacer les caractères spéciaux dans une URL function encode($chaine) ... lire la suite
Comment lister les fichiers PHP inclus sur ma page ?
Optimiser l'exécution de vos scripts en limitant le nombre d'inclusions
07 janvier 2014
Le très simple bout de code ci-dessous vous permettra de lister dans l'ordre les inclusions de fichiers lors de l'exécution de vos scripts PHP. Très pratique pour l'optimisation, surtout si vous n'utilisez pas d'autoload.Lister les fichiers inclus header('Content-type:text/plain', tru ... lire la suite
Les fonctions anonymes récursives en PHP
Comment une fonction anonyme peut-elle s'appeler elle-même ?
28 décembre 2013
Depuis PHP 5.3, les fonctions anonymes (instances de la classe Closure) sont l'un des éléments moteurs du langage. On peut les utiliser comme fonction de callback, pour faire du lazy load, des "vraies" closures ou plus simplement pour exécuter un algorithme dont l'utilisation ne nécessite pas l ... lire la suite
Requête HTTP asynchrone en PHP
Comment envoyer une requête HTTP sans attendre de réponse ?
27 décembre 2013
Voici une manière très simple d'envoyer une requête vers un serveur HTTP sans vous soucier de la réponse : en écrivant dans un socket.Faire un push HTTP en PHPfunction httpRequestAsynchronous($url, array $params = []) {$urlParts = parse_url($url);if (!isset($urlParts['ho ... lire la suite
La résolution statique à la volée ou Late Static Bindings
La résolution tardive pour renforcer le principe d'héritage
14 octobre 2012
Depuis PHP 5.3, le langage implémente une fonctionnalité nommée "résolution statique à la volée" ou en anglais "late static bindings". Cette fonctionnalité permet de mieux résoudre les appels des méthodes statiques.Pour mieux comprendre, voici un exemple : je possède une bibliothèque de jeux ... lire la suite
Trouver les jours fériés français en PHP
Calculer le nombre de jours ouvrés entre deux dates.
07 octobre 2012
Toutes les entreprises françaises ont eu un jour besoin de calculer le nombre de jours ouvrés entre deux dates. Certains sont très faciles à calculer, d'autres dépendent du jour de pâques et changent donc tous les ans. Dans ce tutoriel nous irons par étapes : nous apprendrons à trouver le jour de ... lire la suite