Source for file jFilter.class.php

Documentation is available at jFilter.class.php

  1. <?php
  2. /**
  3. @package     jelix
  4. @subpackage  utils
  5. @author      Laurent Jouanneau
  6. @contributor Julien Issler
  7. @copyright   2006-2007 Laurent Jouanneau
  8. @copyright   2008 Julien Issler
  9. @link        http://www.jelix.org
  10. @licence     http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  11. */
  12.  
  13. /**
  14.  * utility class to check values
  15.  * @package     jelix
  16.  * @subpackage  utils
  17.  * @since 1.0b1
  18.  */
  19. class jFilter {
  20.  
  21.     private function _construct({}
  22.  
  23.     static public function usePhpFilter(){
  24.         return true;
  25.     }
  26.  
  27.     /**
  28.      * check if the given value is an integer
  29.      * @param string $val the value
  30.      * @param int $min minimum value (optional), null if no minimum
  31.      * @param int $max maximum value (optional), null if no maximum
  32.      * @return boolean true if it is valid
  33.      */
  34.     static public function isInt ($val$min=null$max=null){
  35.         // @FIXME pas de doc sur la façon d'utiliser les min/max sur les filters
  36.         if(filter_var($valFILTER_VALIDATE_INT=== falsereturn false;
  37.         if($min !== null && intval($val$minreturn false;
  38.         if($max !== null && intval($val$maxreturn false;
  39.         return true;
  40.     }
  41.  
  42.     /**
  43.      * check if the given value is an hexadecimal integer
  44.      * @param string $val the value
  45.      * @param int $min minimum value (optional), null if no minimum
  46.      * @param int $max maximum value (optional), null if no maximum
  47.      * @return boolean true if it is valid
  48.      */
  49.     static public function isHexInt ($val$min=null$max=null){
  50.         // @FIXME pas de doc sur la façon d'utiliser les min/max sur les filters
  51.         if(filter_var($valFILTER_VALIDATE_INTFILTER_FLAG_ALLOW_HEX=== falsereturn false;
  52.         if($min !== null && intval($val,16$minreturn false;
  53.         if($max !== null && intval($val,16$maxreturn false;
  54.         return true;
  55.     }
  56.  
  57.  
  58.      /**
  59.      * check if the given value is a boolean
  60.      * @param string $val the value
  61.      * @return boolean true if it is valid
  62.      */
  63.     static public function isBool ($val){
  64.         // we don't use filter_var because it return false when a boolean is "false" or "FALSE" etc..
  65.         //return filter_var($val, FILTER_VALIDATE_BOOLEAN);
  66.         return in_array($valarray('true','false','1','0','TRUE''FALSE','on','off'));
  67.     }
  68.  
  69.  
  70.     /**
  71.      * check if the given value is a float
  72.      * @param string $val the value
  73.      * @param int $min minimum value (optional), null if no minimum
  74.      * @param int $max maximum value (optional), null if no maximum
  75.      * @return boolean true if it is valid
  76.      */
  77.     static public function isFloat ($val$min=null$max=null){
  78.         // @FIXME pas de doc sur la façon d'utiliser les min/max sur les filters
  79.         if(filter_var($valFILTER_VALIDATE_FLOAT=== falsereturn false;
  80.         if($min !== null && floatval($val$minreturn false;
  81.         if($max !== null && floatval($val$maxreturn false;
  82.         return true;
  83.     }
  84.  
  85.     /**
  86.      * check if the given value is
  87.      * @param string $url the url
  88.      * @return boolean true if it is valid
  89.      */
  90.  
  91.     static public function isUrl ($url$schemeRequired=false,
  92.                             $hostRequired=false$pathRequired=false,
  93.                             $queryRequired=false ){
  94.         /* because of a bug in filter_var (error when no scheme even if there isn't
  95.          FILTER_FLAG_SCHEME_REQUIRED flag), we don't use filter_var here
  96.         $flag=0;
  97.         if($schemeRequired) $flag |= FILTER_FLAG_SCHEME_REQUIRED;
  98.         if($hostRequired) $flag |= FILTER_FLAG_HOST_REQUIRED;
  99.         if($pathRequired) $flag |= FILTER_FLAG_PATH_REQUIRED;
  100.         if($queryRequired) $flag |= FILTER_FLAG_QUERY_REQUIRED;
  101.         return filter_var($url, FILTER_VALIDATE_URL, $flag);
  102.         */
  103.         // php filter use in fact parse_url, so we use the same function to have same result.
  104.         // however, note that it doesn't validate all bad url...
  105.         $res=@parse_url($url);
  106.         if($res === falsereturn false;
  107.         if($schemeRequired && !isset($res['scheme'])) return false;
  108.         if($hostRequired && !isset($res['host'])) return false;
  109.         if($pathRequired && !isset($res['path'])) return false;
  110.         if($queryRequired && !isset($res['query'])) return false;
  111.         return true;
  112.     }
  113.  
  114.     /**
  115.      * check if the given value is an IP version 4
  116.      * @param string $val the value
  117.      * @return boolean true if it is valid
  118.      */
  119.     static public function isIPv4 ($val){
  120.         return filter_var($valFILTER_VALIDATE_IPFILTER_FLAG_IPV4!== false;
  121.     }
  122.  
  123.     /**
  124.      * check if the given value is an IP version 6
  125.      * @param string $val the value
  126.      * @return boolean true if it is valid
  127.      */
  128.     static public function isIPv6 ($val){
  129.         return filter_var($valFILTER_VALIDATE_IPFILTER_FLAG_IPV6!== false;
  130.     }
  131.  
  132.     /**
  133.      * check if the given value is an email
  134.      * @param string $val the value
  135.      * @return boolean true if it is valid
  136.      */
  137.     static public function isEmail ($val){
  138.         return filter_var($valFILTER_VALIDATE_EMAIL!== false;
  139.     }
  140.  
  141.  
  142. }
  143.  
  144. ?>

Documentation generated on Wed, 07 Sep 2011 13:47:19 +0200 by phpDocumentor 1.4.3