Astuce

Voici une petite astuce pour récuperer l'url du site sous Drupal:

<?php
  url(NULL,array('absolute' => True));
?>

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éé

Voici comme on peut recuperer les valeurs d'un champ CCK pour l'utiliser dans un autre module :

<?php
  $fields = module_invoke('content', 'fields','nom_fileld');
  $values = module_invoke('content','allowed_values',$fields);
?>

Une solution pour échaper aux problèmes CSS de IE ?

Jquery nous offre une fionction qui nous permet de détecter le navigateur et la plateforme du visiteur. Avec ça on peut par exemple manipuler les Class CSS de notre page.

$(function() { 
    var ua = navigator.userAgent.toLowerCase(); 
    var myBrowsers = { 
        // Déjà détectés en natif par jQuery 
        mozilla: $.browser.mozilla, 
        safari:  $.browser.safari, 
        opera:   $.browser.opera, 
        ie:      $.browser.msie, 
        // Quelques améliorations et ajouts 

Voici un petit code en Jquery qui va ouvrir tous les liens sortant de votre site dans une nouvelle fenetre.

$(document).ready(function() {
  $("a[@href^=http]").each(
    function(){
            if(this.href.indexOf(location.hostname) == -1) { 
        $(this).attr('target', '_blank');
      }
    }
  )
});