Kamelot Blog

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 17 décembre 2008

mer
17
dec '08

PEAR::Pager Liste des tutoriaux

Traduction d'une série d'articles de Lorenzo Alberton

Il lui est souvent posé des questions sur la façon d'utiliser PEAR::Pager. Cela va de la manière efficace de paginer des résultats lu dans une base de données, à l'utilisation combinée de PEAR::Pager et javascript ou de PEAR::Pager et AJAX, en passant par l'utilisation de PEAR::Pager et de mod_rewrite. Étant donné que ces questions sont de plus en plus récurrentes sur sa boîte mail ou sur les mailing-lists de PEAR, il a décidé d'écrire cette série de petits tutoriaux :

Vous désirez un sujet particulier? vous voulez utiliser Pager de façon inhabituelle? S’il vous plaît envoyez un mail à Lorenzo avec votre idée.

mer
17
dec '08

is_array_of

Dans un filtre on peut vérifier si une valeur est un nombre, une chaine, un objet, un tableau, ...

Pour tout ce qui est scalaire ca va mais pour un tableau par exemple, on ne vérifie que "l'enveloppe", la "structure" d'un ensemble de données, plus les données elles-même comme avec un is_numeric()

Voici une fonction que j'ai tenté d'écrire pour palier à cela.

Je suis parti d'un commentaire du manuel de la fonction PHP is_array()

Elle est sans doute encore à améliorer Edit:Lisez les commentaires ils sont "utiles"

Première version
  1. <?php
  2.  /**
  3.   *
  4.   *  @param string wanted param boolean|integer|double|string|array|
  5.   *                             object|resource|NULL|unknown type
  6.   *  @param array $array array to check
  7.   *  @param boolean $acceptRecursive if true,
  8.   *                                                 the type can  be in children of subarray.
  9.   */
  10.  function is_array_of($type, $array,$acceptRecursive = false)
  11.  {
  12.   $r = false;
  13.   if (is_array($array))
  14.   {
  15.    foreach($array as $n=>$v)
  16.    {
  17.     if ($acceptRecursive  && is_array( $array[$n] ))
  18.     {
  19.      $r = is_array_of($type, $array[$n] );
  20.      if ($r==false) break;
  21.     } else
  22.      if (!gettype($v)==$type)
  23.      {
  24.       $r=false;
  25.       break;
  26.      } else
  27.       $r=true;
  28.    }
  29.   }
  30.   return $r;
  31.  }
  32. ?>
  33.  

Tags