File "test_valeur_02.php"

Full Path: /home/analogde/www/Prog/MMM/Fusion/Table/test_valeur_02.php
File size: 1.82 KB
MIME-type: text/x-php
Charset: utf-8

<?php
	
	$array_val = array("  51  78  ",  "78&7", "747Z", "747z", "1747", ".1792.AqP.44." , "AZerTY", "8.15", "123.78.94" , ".514" , "357.");
	$array_process = array();
	
	echo "<pre>";
	print_r($array_val);
	echo "</pre>";

	for ($i = 0; $i < count($array_val); $i++) 
	{
		$array_val[$i] = preg_replace("/[^0-9.]/", "", $array_val[$i]);
	}
	
	echo "<pre>";
	print_r($array_val);
	echo "</pre>";

	for ($i = 0; $i < count($array_val); $i++) 
	{
		// si la chaine est vide, cela siginifie qu'il n'y avait que des lettres
		if( strlen($array_val[$i]) == 0 )
		{
			$array_process[$i] = "vide";
		}			
		else
		{
			$pieces = str_split($array_val[$i]);
			// compter les points
			$test = point_exploration($pieces);
			// non valide car plusieurs points
			if( $test == true)
			{
				$array_process[$i] = "vide";
			}		
			// il y a un seul point			
			else
			{	
				// supprimer le point en premiére position
				if( $pieces[0] == chr(46) )
				{
					$changed = substr($array_val[$i], 1); 
					$array_process[$i] = $changed;
				}	
				// supprimer le point en derniere position		
				else if( end($pieces) == chr(46) )
				{
					$changed = substr($array_val[$i], 0, -1); 
					$array_process[$i] = $changed;
				}		
				// on conserve le point qui défini un nombre decimal
				else
				{	
					$array_process[$i] = $array_val[$i];
				}
			}	
		}			
	}
	
	echo "<pre>";
	print_r($array_process);
	echo "</pre>";

function point_exploration($pieces)
{
	$cpt = 0;
	$flag_not_valide_point = false;
	
	for ($i = 0; $i < count($pieces); $i++) 
	{
		if( $pieces[$i] == chr(46) )
		{
			// compte les points qui sont inclus dans la chaine
			$cpt++;
			if( $cpt >= 2 )
			{
				$flag_not_valide_point = true;
				break;
			}
		}
	}
	
	return $flag_not_valide_point;
}
?>