PHP

Warning: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings.

Si vous avez mis à jour le PHP d'une version 5.2 à 5.3, vous risquer surement de tomber sur ce Bug lors de la modification d'un noeud sur Drupal.

Afin d'éviter ces erreurs il existe deux possiblités:

1 - Dans le fichier php.ini (Bien sûre si vous avez accès) ajouter ceci:

[Date]
; Defines the default timezone used by the date functions
date.timezone = "votre fuseau horaire"

Afin de vérifier les e-mails laisser par les visiteurs dans un formulaire, nous utilisons les expressions régulières pour faire le test dont voici un exemple de fonction (CMS Drupal):

<?php
function valid_email_address($mail) {
  $user = '[a-zA-Z0-9_\-\.\+\^!#\$%&*+\/\=\?\`\|\{\}~\']+';
  $domain = '(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.?)+';
  $ipv4 = '[0-9]{1,3}(\.[0-9]{1,3}){3}';
  $ipv6 = '[0-9a-fA-F]{1,4}(\:[0-9a-fA-F]{1,4}){7}';
 
  return preg_match("/^$user@($domain|(\[($ipv4|$ipv6)\]))$/", $mail);
}
?>

Jusqu'à maintenant, impossible de supprimer la totalité d'un dossier en PHP tant que ce dernier n'est pas vide (aucun sous dossier ou fichier)

Voici une petite fonction que j'utilise pour contourner ce manque :

<?php
function supprimer_dossier($directory, $empty = false) {
    if(substr($directory,-1) == "/") {
        $directory = substr($directory,0,-1);
    }
 
    if(!file_exists($directory) || !is_dir($directory)) {
        return false;
    } elseif(!is_readable($directory)) {
        return false;
    } else {

Sous PHP il manque parfois des fonctions très utiles comme pour copier un dossier avec tout son contenu.

Voici une petite fonction que j'utilise pour contourner ce manque :

<?php
function copy_dir ($dir2copy,$dir_paste) {
  // On vérifie si $dir2copy est un dossier
  if (is_dir($dir2copy)) {
 
    // Si oui, on l'ouvre
    if ($dh = opendir($dir2copy)) {     
      // On liste les dossiers et fichiers de $dir2copy
      while (($file = readdir($dh)) !== false) {
        // Si le dossier dans lequel on veut coller n'existe pas, on le créé

Un petit code PHP à insérer dans votre fichier .php pour afficher les erreurs masqué par le serveur:

<?php
  error_reporting(E_ERROR | E_WARNING | E_PARSE);
  ini_set('display_errors', true);
  ini_set('display_startup_errors', TRUE);
?>