[Android] Mon IMC – My BMI

Une nouvelle application vient de voir le jour, il s’agit d’une application vous permettant de suivre l’évolution de vos masses corporelles.

Voici un petit résumé de ce que l’application vous permet :

Suivez vos indices de masse corporelle et de masse graisseuse.

Visualisez vos moyennes selon vos préférences : 15 jours, 1 mois, 3 mois, toutes les données

Récapitulatif de vos indices visibles d’un seul coup d’œil

Visualisez l’évolution de vos indices en liste, sur un graphique.

Les indices sont basés sur les dernières statistiques

Support de plusieurs unités afin de saisir le poids et la taille

Si vous rencontrez des problèmes avec l’application, vous pouvez vous rendre sur le Bug Tracker afin de les signaler !

Version anglaise 🙂

A new Android app is born, this application allow you to follow yours mass indexes.

This is a little summary of this appplication :

Follow your body mass index and your fat body index.
View yours averages suit your preferences: 15 days, 1 month, 3 months, all the data.
The summary of yours averages is visible of a glance.
View your changing mass index on a list or on a chart.
The mass indexes are based on the latest statistics.
Support for multiple units to enter the weight and size
If you have any problems with this app, please visit this website and let me know your problem

Pour télécharger l’application, c’est ici :

qrcode_imcIMC - AccueilIMC - AJouter une entréeIMC - GraphiqueIMC - PériodeIMC - Liste des entréesIMC - Paramètres

Récupérer des données JSON en PHP

Vous avez besoin de récupérer des données JSON envoyées à votre script PHP…

Alors vous utilisez les $_GET, $_POST, $_REQUEST, mais rien ne fonctionne…

Alors voici votre solution !

<?
$handle = fopen('php://input','r');
$jsonbrut = fgets($handle);
$datas=json_decode($jsonbrut,true);
?>

Et voilà, dans $datas, vous aurez vos données json sous la forme d’un tableau !

C’est tellement simple…

Remplacer la fonction eregi dépréciée dans les nouvelles versions de PHP

Vous utilisiez la fonction eregi et vous vous êtes rendu compte que celle-ci ne devait plus être utilisée avec php >= 5.3.0

Voici donc un petit exemple de remplacement en utilisant la fonction preg_match.

Voici le code avant :

		if(eregi("<title>(.*)</title>", $Titre, $LTitre)){
			$LTitre=$LTitre[1];
		}else{
			$LTitre='';
		}

Et voici le code maintenant :

		if(preg_match('/<title>(.*)<\/title>/i', $Titre, $LTitre)){
			$LTitre=$LTitre[1];
		}else{
			$LTitre='';
		}

Il s’agit donc d’utiliser maintenant la fonction preg_match et ses délimiteurs qui sont “/”, le “/i”, nous permet de rendre la recherche insensible à la case. N’oubliez pas d’ajouter un “\” devant les “/” qui vous servent pour votre recherche…

[PHP] Heure d’hiver en Europe

La fonction existante dans le langage PHP ne retourne pas forcément le bon résultat, alors, voici une classe qui vous permet, sans utiliser la fonction de PHP, de savoir si la date est basée sur l’heure d’hiver ou non

<?php
/**
*   dateime_timezone_daylight.php
*   Copyright (C) MazeSloup - mazesloup [at] gmail [dot] com
*   http://mazesloup.fr
*   http://blog.mazesloup.fr/index.php/post/2010/11/11/php-heure-dhiver-en-europe
*
*   This program is free software; you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation; either version 2 of the License.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with this program; if not, write to the Free Software
*   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/*
 * Permet de savoir si une date est en heure d'hiver ou non
 * Utilisation : ms_SummerTimeInEU::isInWinterTime(strtotime('2010/10/31 04:00'));
 * @return bolean True si nous somme en heure d'hiver, false si nous sommes en heure d'été
 */
class ms_SummerTimeInEU{

	static function getDayOfWinterTime($Year){
		return date('z',strtotime(sprintf("last sunday of october %n",$Year)));
	}

	static function getDayOfSummerTime($Year){
		return date('z',strtotime(sprintf("last sunday of march %n",$Year)));
	}	

	static function isInWinterTime($When){
		$NumberDay=date('z',$When);
		if(($NumberDay<self::getDayOfSummerTime(date('y',$When)))||($NumberDay>self::getDayOfWinterTime(date('y',$When)))){
			return true;
		}else{
			if((($NumberDay==self::getDayOfSummerTime(date('y',$When))&&(date('G',$When)<2)))||(($NumberDay==self::getDayOfWinterTime(date('y',$When))&&(date('G',$When)>3)))){
				return true;
			}else{
				return false;
			}
		}
	}
}
?>

[PHP] Envoyer un fichier avec cUrl

Si vous êtes amené à envoyer un fichier via cUrl en php, voici de quoi vous mettre sur la piste !

Le fichier permettant l’envoi :

curl_postfile.php

<?php
/**
*   curl_postfile.php
*   Copyright (C) MazeSloup - mazesloup [at] gmail [dot] com
*   http://mazesloup.fr
*   http://blog.mazesloup.fr/index.php/post/2010/10/27/php-envoyer-un-fichier-avec-curl
*
*   This program is free software; you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program; if not, write to the Free Software
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/**
 * Fonction qui envoie le fichier $My_File vers $CURL_POSTURL
 * @param $My_File Nom et chemin du fichier
 * @param $CURL_POSTURL Adresse de la page qui doit recevoir et gérer les opérations
 * @return $response Retourne les informations concernant le traitement de l'exécution
 */
function curl_upload_file($My_File, $CURL_POSTURL){
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_VERBOSE, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible;)");
	curl_setopt($ch, CURLOPT_URL, $CURL_POSTURL);
	curl_setopt($ch, CURLOPT_POST, true);
	$post = array(
  	'My_File' => '@'.$My_File,
  	'Another_Field' => 'Yes!'
	);

	curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	$response = curl_exec($ch);

	return $response;
}

/**
* Le fichier test.txt est un document se trouvant dans le même dossier que les fichiers .php
* L'Url est une Url locale dont le domaine est configuré sur le serveur local http://test/
*/
curl_upload_file('./test.txt','http://test/curl_postfile_receive.php');
?>

Le fichier permettant la réception
curl_postfile_receive.php

<?php
/**
*   curl_postfile_receive.php
*   Copyright (C) MazeSloup - mazesloup [at] gmail [dot] com
*   http://mazesloup.fr
*   http://blog.mazesloup.fr/index.php/post/2010/10/27/php-envoyer-un-fichier-avec-curl
*
*   This program is free software; you can redistribute it and/or modify
*    it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License.
*
*    This program is distributed in the hope that it will be useful,
*    but WITHOUT ANY WARRANTY; without even the implied warranty of
*    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*    GNU General Public License for more details.
*
*    You should have received a copy of the GNU General Public License
*    along with this program; if not, write to the Free Software
*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/*
 * Chemin où sera enregistré le fichier
 */
$FILE_FOLDER='/tmp';

/*
 * Vérification de l'existence de $_FILES qui contient les informations sur le fichier envoyé
 */
if(isset($_FILES)){
	/*
	 * Vérification que le fichier provient bien du serveur
	 */
	if(is_uploaded_file($_FILES['My_File']['tmp_name'])){
		/*
		 * Déplacement du fichier au bon endroit avec son nom d'origine
		 */
		move_uploaded_file($_FILES['My_File']['tmp_name'],$FILE_FOLDER.'/'.$_FILES['My_File']['name']);
	}
}
?>

Cela ne représente qu’une partie de la gestion de cUrl, mais une bonne base si vous avez besoin d’envoyer des fichiers de cette manière.