Divers

[PHP] calcul de l'age à partir de la date de naissance

tout est dans le titre :)

getAgeFromBirthday($birthday) {
      list($annee, $mois, $jour) = split('[-.]', $birthday);
      $today['mois'] = date('n');
      $today['jour'] = date('j');
      $today['annee'] = date('Y');
      $annees = $today['annee'] - $annee;
      if ($mois >= $today['mois']) {
        if ($mois == $today['mois']) {
          if ($jour > $today['jour']) $annees--;
        } else {
          $annees--;
        }
      }
      return $annees;
    }

Tags:

[PHP] redimensionner une image

voici une fonction pour redimensionner une image, si l'image est plus petite que la taille demandée, on ne fait rien :

function _resizeImage( $tmpname, $w, $h, $save_dir, $save_name)
  {
    $save_dir      .= (substr($save_dir,-1) != "/") ? "/" : "";
    $img_src_chemin = $tmpname;
    $img_dst_chemin = $save_dir.$save_name;
    $extension = strtolower(substr($img_src_chemin, -3));
    
    switch ( $extension ) {
      case "jpg":
      case "peg": //pour le cas où l'extension est "jpeg"
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
        break;

      case "gif":
        $img_src_resource = imagecreatefromgif( $img_src_chemin );
        break;

      case "png":
        $img_src_resource = imagecreatefrompng( $img_src_chemin );
        break;

      default:
        $img_src_resource = imagecreatefromjpeg( $img_src_chemin );
    }

    $img_src_width  = imagesx( $img_src_resource );
    $img_src_height = imagesy( $img_src_resource );

    //preserver les dimensions
    $rapport = $img_src_width / $img_src_height;
    if($rapport > 1) {
      $h = intval($h / $rapport);
    } else {
      $w = intval($w * $rapport);
    }

    //si image plus petite que ce qu'on veut (si on veut agrandir une image, il faudra enlever cette partie)
    if($img_src_width <= $w && $img_src_height <= $h) {
      rename($img_src_chemin, $img_dst_chemin);
      return;
    }

    $img_dst_resource = imagecreatetruecolor($w, $h);
    $white = imagecolorallocate($img_dst_resource, 255, 255, 255); //ici on veut un fond blanc (noir par défaut)
    imagefilledrectangle($img_dst_resource, 0, 0, $w, $h, $white);

    imagecopyresampled($img_dst_resource, $img_src_resource, 0, 0, 0, 0, $w, $h, $img_src_width, $img_src_height);

    switch ( $extension ) {
      case "jpg":
      case "peg":
        imagejpeg($img_dst_resource, $img_dst_chemin);
        break;

      case "gif":
        imagegif($img_dst_resource, $img_dst_chemin);
        break;

      case "png":
        imagepng($img_dst_resource, $img_dst_chemin);
        break;

      default:
        imagejpeg($img_dst_resource, $img_dst_chemin);
    }

    //on supprime l'image source
    unlink($img_src_chemin);
  }

exemple d'utilisation :

$this->_resizeImage(
            $_FILES['totot']['temp_name'], //de mémoire^^
           150,
           150,
           "/var/www/html/uploads/",
          "thumbnail.jpg"
);

[PHP] transformer tous les caractères accentués en entités html

$string = str_replace(
                explode(' ', 'à á â ä ç è é ê ë ì í î ï ò ó ô ö ù ú û ü ý ÿ À Á Â Ä Ç È É Ê Ë Ì Í Î Ï Ò Ó Ô Ö Ù Ú Û Ü Ý'),
                explode(' ', '&agrave; &aacute; &acirc; &auml; &ccedil; &egrave; &eacute; &ecirc; &euml; &igrave; &iacute; &icirc; &iuml; &ograve; &oacute; &ocirc; &ouml; &ugrave; &uacute; &ucirc; &uuml; &yacute; &yuml; &Agrave; &Aacute; &Acirc; &Auml &Ccedil; &Egrave &Eacute; &Ecirc; &Euml; &Igrave &Iacute; &Icirc; &Iuml; &Ograve; &Oacute; &Ocirc; &Ouml; &Ugrave; &Uacute; &Ucirc; &Uuml; &Yacute;'),
                $string);

[PHP] transformer un objet SimpleXML en tableau (array)

function simplexml2array($simplexml) 
{
    $result = array();
    if(!$simplexml) return $result;
    foreach($simplexml->children() as $cle=>$value) {
         $result[(string) $cle] = $value->hasChildren() ? simplexml2array($value) : (string) $value;
    }
    return $result;
}

[PHP] Conversion Fahrenheit => Celsius

function f2c ($t) {
  return round(($t-32)*5/9); 
}

Pages

Subscribe to RSS - Divers