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