Annonce

Réduire
Aucune annonce.

Script PHP: Diverses fonctions PHP utiles

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Script PHP: Diverses fonctions PHP utiles

    Analyse des Ports d'une Machine
    Code:
    <?php
    namespace core_01;
    function analyse_ports($host=null,$min_port=null,$max_port=null,$print=null)
    {
    	/*
    		Version 1.0
    		Cette fonction "Analyse des Ports d'une Machine" possede 4 parametres:
    		OGLIGATOIRE	: le 1er est l'hote que l'on veut tester.
    		FACULTATIF	: le 2eme est le port minimun que l'on veut tester (par default 1)
    		FACULTATIF	: le 3eme est le port maximun que l'on veut tester (par default du 2eme parametre)
    			(donc un seul port est tester)
    		FACULTATIF	: le 4eme définit l'affichage (par default rien ne seras affichés)
    			(1 correspond aux ports fermes et 2 correspond aux ports ouverts et 3 à tous les ports ;) )
    
    		/!\ note : Si ni le 2eme, ni le 3eme paramètre est passer, alors tous les ports seront analysers!
    		(malgrer ce que pourrais faire croire les phrases en haut ;) )
    
    		Exemple d'appel : analyse_port('127.0.0.1',80,120,2);
    		afficheras les ports ouverts sur 127.0.0.1 allant de 80 à 120 ;)
    
    		Elle retourne un array à deux dimensions $result['open_ports'][] et $result['close_ports'][]
    	*/
    
    	global $_VAR;global $_TEXT;
    
    	$result=null;
    
    	if($host!=null)
    	{
    		$host=htmlspecialchars($host);
    		if(filter_var(gethostbyname($host), FILTER_VALIDATE_IP))
    		{
    			if($min_port==null&&$max_port==null)
    			{
    				$min_port=1;
    				$max_port=65536;
    			}
    			if(is_numeric($min_port)&&$min_port>=1&&$min_port<=65536)
    			{
    				$min_port=intval($min_port);
    				if($max_port==null)
    				{
    					$max_port=$min_port;
    				}
    				if(is_numeric($max_port)&&$max_port>=1&&$max_port<=65536&&$max_port>=$min_port)
    				{
    					$max_port=intval($max_port);
    					if($print==null||$print==1||$print==2||$print==3)
    					{
    						for($min_port=$min_port;$min_port<=$max_port;$min_port++)
    						{
    							if (@fsockopen($host,$min_port))
    							{
    								$result['open_port'][]=$min_port;
    							}
    							else
    							{
    								$result['close_port'][]=$min_port;
    							}
    						}
    						if($print==1)
    						{
    							foreach($result['close_port'] as $key=>$value)
    							{
    								echo 'port ',$value,' is close at ',$host,'<br />';
    							}
    						}
    						elseif($print==2)
    						{
    							foreach($result['open_port'] as $key=>$value)
    							{
    								echo 'port ',$value,' is open at ',$host,'<br />';
    							}
    						}
    						elseif($print==3)
    						{
    							$test_1=array_flip($result['close_port']);
    							foreach($test_1 as $key=>$value)
    							{
    								$test_1[$key]='close';
    							}
    
    							$test_2=array_flip($result['open_port']);
    							foreach($test_2 as $key=>$value)
    							{
    								$test_2[$key]='open';
    							}
    
    							$test=$test_1+$test_2;
    							ksort($test);
    
    							foreach($test as $key=>$value)
    							{
    								echo 'port ',$key,' is ',$value,' at ',$host,'<br />';
    							}
    						}
    					}
    					else
    					{
    						echo 'error in function analyse_port : false parameter print!';
    						return false;
    					}
    				}
    				else
    				{
    					echo 'error in function analyse_port : false parameter max_port!';
    					return false;
    				}
    			}
    			else
    			{
    				echo 'error in function analyse_port : false parameter min_port!';
    				return false;
    			}
    		}
    		else
    		{
    			echo 'error in function analyse_port : false host!';
    			return false;
    		}
    	}
    	else
    	{
    		echo 'error in function analyse_port : false parameter host!';
    		return false;
    	}
    	return $result;
    }
    [hr]

    Analyse d'une String
    Code:
    <?php
    function analyse_string($text,$strlen=true,$str_word_count=true,$caracteres_str_word_count=true,$analyse=true,$taux_doublons=true,$grey_list=true,$black_list=true)
    {
    	/*
    		Version 1.0
    		Cette fonction "Analyse d'une chaine de Caractère" possede 8 parametres:
    		OGLIGATOIRE	: le 1er est la string que l'on veut analyser.
    		FACULTATIF	: le 2eme indique si on veut calculer la longueur de la string
    		FACULTATIF	: le 3eme indique si on veut calculer le nombre de mot de la string
    		FACULTATIF	: le 4eme indique si on veut calculer le nombre de caractères par mot de la string
    		FACULTATIF	: le 5eme indique si on veut analyser la string  ( /!\ Attention le traitement est long!!! /!\ )
    		FACULTATIF	: le 6eme indique si on veut calculer le taux de doublons des caractères de la string (détecter les aa, bb, ccc.... )
    		FACULTATIF	: le 7eme indique si on veut calculer le nombre de mot censuré contenu dans la string
    		FACULTATIF	: le 8eme indique si on veut calculer le nombre de mot ressemblant à la liste de censure de la string
    		( /!\ Attention beaucoup de mot peuvent mettre trouver à tort ;) /!\ )
    
    		Par défault, tout les test serons effectués
    
    		Exemple d'appel : analyse_string('Cec1 esttt un te$t!! SUPER regarde les stats :p');
    		renveras un array d'informations sur la sting :)
    
    		Elle retourne un array contenant :
    		[minuscules_sans_accents]
    		[minuscules_avec_accents]
    		[majuscules_sans_accents]
    		[majuscules_avec_accents]
    		[ponctuation]
    		[nombres]
    		[espace]
    		[autre]
    		[taux_doublons]
    		[grey_list]
    		[black_list]
    		[strlen]
    		[str_word_count]
    		[caracteres_str_word_count]
    	*/
    
    	$minuscules_sans_accents='abcdefghijklmnopqrstuvwxyz';
    	$minuscules_avec_accents='áàâäãåçéèêëíìîïñóòôöõúùûüýÿ';
    	$majuscules_sans_accents=strtoupper($minuscules_sans_accents);
    	$majuscules_avec_accents='ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ';
    	$ponctuation=',?;.:!';
    	$nombres='0123456789';
    
    	$list_censured=array();
    
    	$file=$_SERVER['DOCUMENT_ROOT'].'/papers/setting/censured.txt';
    	if($file!=null)
    	{
    		if(is_file($file))
    		{
    			$file_open = fopen($file, 'r');
    			while (!feof($file_open))
    			{
    				$line=trim(fgets($file_open));
    				if($line!=null)
    				{
    					$list_censured[]=$line;
    				}
    			}
    			fclose($file_open);
    		}
    		else
    		{
    			echo 'error in function analyse_string : ',htmlentities($file).' is not file!';
    			return false;
    		}
    	}
    	else
    	{
    		echo 'error in function analyse_string : any specified file!';
    		return false;
    	}
    
    
    	$resultats['minuscules_sans_accents']=0;
    	$resultats['minuscules_avec_accents']=0;
    	$resultats['majuscules_sans_accents']=0;
    	$resultats['majuscules_avec_accents']=0;
    	$resultats['ponctuation']=0;
    	$resultats['nombres']=0;
    	$resultats['espace']=0;
    	$resultats['autre']=0;
    
    	$resultats['taux_doublons']=0;
    
    	$resultats['grey_list']=0;
    
    	$resultats['black_list']=0;
    
    	if($strlen==true)
    	{
    		$resultats['strlen']=mb_strlen($text);
    	}
    	else
    	{
    		$resultats['strlen']='not';
    	}
    
    
    
    	if($str_word_count==true)
    	{
    		//cette technique marche pas vraiment avec utf-8 :(
    		//$resultats['str_word_count']=str_word_count($text);
    		//voilà la mienne (bourrin... :p)
    		$resultats['str_word_count']=substr_count($text,' ')+1;
    	}
    	else
    	{
    		$resultats['str_word_count']='not';
    	}
    
    
    
    	if($caracteres_str_word_count==true)
    	{
    		$resultats['caracteres_str_word_count']=(mb_strlen($text)-substr_count($text,' '))/(substr_count($text,' ')+1);
    	}
    	else
    	{
    		$resultats['caracteres_str_word_count']='not';
    	}
    
    
    
    	if($analyse==true)
    	{
    		$b=mb_strlen($text);
    		for($a=0;$a<$b;$a++)
    		{
    			$carac=mb_substr($text,$a,1);
    			//ceci sont d'autres façon de faire, mais mal adapter ou depreceted
    			//if(substr_count($minuscules_sans_accents,$carac)>=1)
    			//if(ereg($carac,$minuscules_sans_accents))
    
    			if (strpos($minuscules_sans_accents,$carac))
    			{
    				$resultats['minuscules_sans_accents']++;
    			}
    			elseif (strpos($minuscules_avec_accents,$carac))
    			{
    				$resultats['minuscules_avec_accents']++;
    			}
    			elseif (strpos($majuscules_sans_accents,$carac))
    			{
    				$resultats['majuscules_sans_accents']++;
    			}
    			elseif (strpos($majuscules_avec_accents,$carac))
    			{
    				$resultats['majuscules_avec_accents']++;
    			}
    			elseif (strpos($ponctuation,$carac))
    			{
    				$resultats['ponctuation']++;
    			}
    			elseif (strpos($nombres,$carac))
    			{
    				$resultats['nombres']++;
    			}
    			elseif($carac==' ')
    			{
    				$resultats['espace']++;
    			}
    			else
    			{
    				$resultats['autre']++;
    			}
    		}
    	}
    	else
    	{
    		$resultats['minuscules_sans_accents']='not';
    		$resultats['minuscules_avec_accents']='not';
    		$resultats['majuscules_sans_accents']='not';
    		$resultats['majuscules_avec_accents']='not';
    		$resultats['ponctuation']='not';
    		$resultats['nombres']='not';
    		$resultats['espace']='not';
    		$resultats['autre']='not';
    	}
    
    
    
    	if($taux_doublons==true)
    	{
    		$liste=$minuscules_sans_accents.$minuscules_avec_accents.$majuscules_sans_accents.
    			$majuscules_avec_accents.$ponctuation.$nombres;
    		$b=mb_strlen($liste);
    		$nombre=0;
    		for($a=0;$a<$b;$a++)
    		{
    			$nombre+=substr_count($text,mb_substr($liste,$a,1).mb_substr($liste,$a,1));
    		}
    		$resultats['taux_doublons']=$nombre/mb_strlen($text);
    	}
    	else
    	{
    		$resultats['taux_doublons']='not';
    	}
    
    
    
    	if($grey_list==true)
    	{
    		foreach($list_censured as $cle=>$valeur)
    		{
    			$resultats['grey_list']++;
    		}
    	}
    	else
    	{
    		$resultats['nbr_grey_list']='not';
    	}
    
    
    
    	if($black_list==true)
    	{
    		$mots=explode(' ',$text);
    		foreach($mots as $cle1=>$valeur1)
    		{
    			foreach($list_censured as $cle2=>$valeur2)
    			{
    				if(levenshtein($valeur1,$valeur2)<=2)
    				{
    					$resultats['black_list']++;
    				}
    			}
    		}
    	}
    	else
    	{
    		$resultats['black_list']='not';
    	}
    
    	return $resultats;
    }
    Anti registrer globals
    Code:
    <?php
    function anti_register_globals()
    {
    	if (ini_get('register_globals'))
    	{
    		foreach($GLOBALS as $s_variable_name => $m_variable_value)
    		{
    			if (!in_array($s_variable_name, array('GLOBALS', 'argv', 'argc', '_FILES', '_COOKIE', '_POST', '_GET', '_SERVER', '_ENV', '_SESSION', 's_variable_name', 'm_variable_value')))
    			{
    				unset($GLOBALS[$s_variable_name]);
    			}
    		}
    		unset($GLOBALS['s_variable_name']);
    		unset($GLOBALS['m_variable_value']);
    	}
    }
    [hr]
    Create_archive
    Code:
    <?php
    function create_archive($repertory,$archive)
    {
    	$zip = new ZipArchive();
    	if(is_dir($repertory))
    	{
    		if($zip->open($archive, ZipArchive::CREATE) == TRUE)
    		{
    			$files = scandir($repertory);
    			unset($files[0], $files[1]);
    	
    			foreach($files as $file)
    			{
    				if(!$zip->addFile($repertory.$file,$file))
    				{
    					echo 'Impossible d\'ajouter'.$f.'&quot;.<br/>';
    				}
    			}
    			$zip->close();
    		}
    		else
    		{
    			echo 'Erreur, impossible de créer l'archive.';
    		}
    	}
    	else
    	{
    		echo 'Le dossier n'existe pas.';
    	}
    }
    [hr]
    Ralentir le téléchargement d'un fichier
    Code:
    <?php
    function dowload_file($local_file=NULL,$download_rate=NULL,$download_file=NULL)
    {
    	set_time_limit(180);
    	if($local_file!=NULL)
    	{
    		if(file_exists($local_file) && is_file($local_file))
    		{
    			if($download_rate==NULL){$download_rate=filesize($local_file);}
    			if($download_file==NULL){$download_file=basename($local_file);}
    
    			header('Cache-control: private');
    			header('Content-Type: application/octet-stream');
    			header('Content-Length: '.filesize($local_file));
    			header('Content-Disposition: filename='.$download_file);
    
    			flush();
    			$file = fopen($local_file, "r");
    			while(!feof($file))
    			{
    				print fread($file, round($download_rate * 256));
    				flush();
    				usleep(250000);
    			}
    			fclose($file);
    		}
    		else
    		{
    			exit('Error: The file "'.htmlentities($local_file).'" does not exist!');
    		}
    	}
    	else
    	{
    		exit('Error: The file is not specified !');
    	}
    }
    [hr]
    Limiter les utilisateurs
    Code:
    <?php
    $nb_connectes = exec('ps auxwf | grep httpd | wc -l')/1;
    echo $nb_connectes; 
    if ($nb_connectes > 5)
    {
    	header("HTTP/1.1 503 Service Unavailable");
    	echo "<h1>503 Service Unavailable (too many connections)</h1>";
    	exit();
    }
    [hr]
    Parcours file
    Code:
    <?php
    function parcours_file($file=NULL)
    {
    	if($file!=NULL)
    	{
    		if(is_file($file))
    		{
    			$lines = file($file);
    			foreach ($lines as $line_num => $line)
    			{
    				echo 'Line #{',$line_num,'}</b> : '.htmlentities($line).'<br />';
    			}
    		}
    		else
    		{
    			exit(htmlentities($file).'is not file!');
    		}
    	}
    	else
    	{
    	exit('Error parametre');
    	}
    }
    [hr]
    Redimensionnement image
    Code:
    <?php
    function redimensionnement_image($url_image_1=NULL,$largeur_image_2=NULL,$url_image_2=NULL,$qualite=100)
    {
    	$largeur_image_2=round($largeur_image_2, 0);
    	if(file_exists($url_image_1) && is_file($url_image_1))
    	{
    		if($largeur_image_2!=NULL)
    		{
    			$ext_image_1=strtolower(strrchr($url_image_1,'.'));
    			if($ext_image_1=='.jpeg' || $ext_image_1=='.jpg')
    			{
    				$type_image_1=mime_content_type($url_image_1);
    				if($type_image_1=='image/jpeg' || $type_image_1=='image/jpg')
    				{
    					$image_1=imagecreatefromjpeg($url_image_1);
    					$taille_image_1=getimagesize($url_image_1);
    
    					$hauteur_image_2=round($taille_image_1[1]*$largeur_image_2/$taille_image_1[0], 0);
    					echo '<br />Image A : '.$taille_image_1[0],' de largeur et ',$taille_image_1[1],' de hauteur';
    					echo '<br />Image B : ',$largeur_image_2,  ' de largeur et ',$hauteur_image_2,'   de hauteur';
    
    					$image_2=imagecreatetruecolor($largeur_image_2,$hauteur_image_2);
    					imagecopyresampled($image_2,$image_1,0,0,0,0,$largeur_image_2,$hauteur_image_2, $taille_image_1[0],$taille_image_1[1]);
    
    					if($url_image_2==NULL){$url_image_2=basename($url_image_1,strtolower(strrchr($url_image_1,'.'))).'-'.$largeur_image_2.'-'.$hauteur_image_2.strtolower(strrchr($url_image_1,'.'));}
    					imagejpeg($image_2,$url_image_2, $qualite);
    
    					echo '<img src="',$url_image_1,'" alt="image1"/><br />';
    					echo '<img src="',$url_image_2,'" alt="image2"/><br />';
    				}
    				else
    				{
    					echo 'Error: the file "',htmlentities($url_image_1),'" have not valid type mime!';
    				}
    			}
    			else
    			{
    				echo 'Error: the file "',htmlentities($url_image_1),'" is not file jpeg!';
    			}
    		}
    		else
    		{
    			echo 'Error: parametre not found!';
    		}
    	}
    	else
    	{
    		echo 'Error: the file "',htmlentities($url_image_1),'" is not existed in the serveur!';
    	}
    	
    }
    [hr]
    search_erase_in_array
    Code:
    <?php
    function search_erase_in_array($array=NULL,$search=NULL,$erase=NULL)
    {
    	if($array==NULL){return;}
    
    	if($search==NULL)
    	{
    		//array_flip(
    		$nom_categories=array_unique(array_values($array));
    	}
    	else
    	{
    		$nom_categories=array($search);
    	}
    	$nb_calcul=0;
    	foreach($nom_categories as $cle_1)
    	{
    		$return=NULL;
    		//echo $cle_1,'<br />';
    		foreach($array as $cle_2 => $valeur_2)
    		{
    			$nb_calcul++;
    			//echo 'je cherche : ',$cle_1,' dans ',$valeur_2,'<br />';
    			if ($cle_1==$valeur_2)
    			{
    				//echo "trouver!".$cle_2.' est un '.$cle_1.'<br />';
    				if($return!=NULL){$return.=', ';}
    				$return.=$cle_2;
    				if($erase==true){unset($array[$cle_2]);}
    			}
    		}
    		echo $cle_1,' : ',$return,'<br />';
    	}
    	echo 'nb_calcul : ',$nb_calcul;
    }
    
    $fruits=array(
    'aromate'=>'oignon',
    'morille'=>'champignon',
    'citron'=>'fruit',
    'pomme'=>'fruit',
    'poire'=>'fruit',
    'banane'=>'fruit',
    'etc'=>'fruit',
    'betterave'=>'legume',
    'haricots'=>'legume',
    'petits pois'=>'legume',
    'etc'=>'legume',
    'laitue'=>'salade',
    'frisee'=>'salade',
    );
    
    search_erase_in_array($fruits);
    [hr]
    Strip_accents
    Code:
    <?php
    function strip_accents($string,$level=1,$iconv=NULL)
    {
    	if($iconv=='true')
    	{
    		if(trim(ICONV_IMPL)=='glibc')
    		{
    			$string=iconv("UTF-8", "ISO-8859-15//TRANSLIT//IGNORE",$string);
    		}
    		else
    		{
    			$string=iconv("UTF-8", "ISO-8859-15//TRANSLIT", $string);
    		}
    	}
    	if($level>=1)
    	{
    		$string=strtr(
    			$string,
    			'áàâäãåçéèêëíìîïñóòôöõúùûüýÿÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ',
    			'aaaaaaceeeeiiiinooooouuuuyyAAAAAACEEEEIIIINOOOOOUUUUY'
    		);
    	}
    	if($level>=2)
    	{
    		$string=strtr(
    			$string,
    			'¥µÆÐØßæñðø',
    			'YuADOsanoo'
    		);
    	}
    	return $string;
    }
    [hr]
    TRAVAIL D'UNE APREM entière (a cause de utf-8/ISO et mb_...) mais franchement elle valait le coup
    Analyse d'une chaîne de caractères (attention le traitement est long, environ 1s pour 3000 caractères, avec une marque, sinon en vrai c'est plutot le double :blush: )
    (Cette fonction devrais être native maintenant )
    Code:
    <?php
    $_VAR['system']['time_start'] = microtime(true);
    function analyse_text($text,$strlen=true,$str_word_count=true,$caracteres_str_word_count=true,$analyse=true,$taux_doublons=true,$grey_list=true,$black_list=true)
    {
    	$text = trim(preg_replace ('/\s+/',' ', $text));
    
    	$minuscules_sans_accents='abcdefghijklmnopqrstuvwxyz';
    	$minuscules_avec_accents='áàâäãåçéèêëíìîïñóòôöõúùûüýÿ';
    	$majuscules_sans_accents=strtoupper($minuscules_sans_accents);
    	$majuscules_avec_accents='ÁÀÂÄÃÅÇÉÈÊËÍÏÎÌÑÓÒÔÖÕÚÙÛÜÝ';
    	$ponctuation=',?;.:!';
    	$nombres='0123456789';
    
    	$list_censured=array('pour');
    
    	$resultats['minuscules_sans_accents']=0;
    	$resultats['minuscules_avec_accents']=0;
    	$resultats['majuscules_sans_accents']=0;
    	$resultats['majuscules_avec_accents']=0;
    	$resultats['ponctuation']=0;
    	$resultats['nombres']=0;
    	$resultats['espace']=0;
    	$resultats['autre']=0;
    
    	$resultats['taux_doublons']=0;
    
    	$resultats['grey_list']=0;
    
    	$resultats['black_list']=0;
    
    	if($strlen==true)
    	{
    		$resultats['strlen']=mb_strlen($text);
    	}
    	else
    	{
    		$resultats['strlen']='not';
    	}
    
    
    
    	if($str_word_count==true)
    	{
    		//cette technique marche pas vraiment avec utf-8 :(
    		//$resultats['str_word_count']=str_word_count($text);
    		//voilà la mienne (bourrin... :p)
    		$resultats['str_word_count']=substr_count($text,' ')+1;
    	}
    	else
    	{
    		$resultats['str_word_count']='not';
    	}
    
    
    
    	if($caracteres_str_word_count==true)
    	{
    		$resultats['caracteres_str_word_count']=(mb_strlen($text)-substr_count($text,' '))/(substr_count($text,' ')+1);
    	}
    	else
    	{
    		$resultats['caracteres_str_word_count']='not';
    	}
    
    
    
    	if($analyse==true)
    	{
    		$b=mb_strlen($text);
    		for($a=0;$a<$b;$a++)
    		{
    			$carac=mb_substr($text,$a,1);
    			//if(substr_count($minuscules_sans_accents,$carac)>=1)
    			//if(ereg($carac,$minuscules_sans_accents))
    
    			if (strpos($minuscules_sans_accents,$carac))
    			{
    				$resultats['minuscules_sans_accents']++;
    			}
    			elseif (strpos($minuscules_avec_accents,$carac))
    			{
    				$resultats['minuscules_avec_accents']++;
    			}
    			elseif (strpos($majuscules_sans_accents,$carac))
    			{
    				$resultats['majuscules_sans_accents']++;
    			}
    			elseif (strpos($majuscules_avec_accents,$carac))
    			{
    				$resultats['majuscules_avec_accents']++;
    			}
    			elseif (strpos($ponctuation,$carac))
    			{
    				$resultats['ponctuation']++;
    			}
    			elseif (strpos($nombres,$carac))
    			{
    				$resultats['nombres']++;
    			}
    			elseif($carac==' ')
    			{
    				$resultats['espace']++;
    			}
    			else
    			{
    				$resultats['autre']++;
    			}
    		}
    	}
    	else
    	{
    		$resultats['minuscules_sans_accents']='not';
    		$resultats['minuscules_avec_accents']='not';
    		$resultats['majuscules_sans_accents']='not';
    		$resultats['majuscules_avec_accents']='not';
    		$resultats['ponctuation']='not';
    		$resultats['nombres']='not';
    		$resultats['espace']='not';
    		$resultats['autre']='not';
    	}
    
    
    
    	if($taux_doublons==true)
    	{
    		$liste=$minuscules_sans_accents.$minuscules_avec_accents.$majuscules_sans_accents.
    			$majuscules_avec_accents.$ponctuation.$nombres;
    		$b=mb_strlen($liste);
    		$nombre=0;
    		for($a=0;$a<$b;$a++)
    		{
    			$nombre+=substr_count($text,mb_substr($liste,$a,1).mb_substr($liste,$a,1));
    		}
    		$resultats['taux_doublons']=$nombre/mb_strlen($text);
    	}
    	else
    	{
    		$resultats['taux_doublons']='not';
    	}
    
    
    
    	if($grey_list==true)
    	{
    		foreach($list_censured as $cle=>$valeur)
    		{
    			$resultats['grey_list']++;
    		}
    	}
    	else
    	{
    		$resultats['nbr_grey_list']='not';
    	}
    
    
    
    	if($black_list==true)
    	{
    		$mots=explode(' ',$text);
    		foreach($mots as $cle1=>$valeur1)
    		{
    			foreach($list_censured as $cle2=>$valeur2)
    			{
    				if(levenshtein($valeur1,$valeur2)<=2)
    				{
    					$resultats['black_list']++;
    				}
    			}
    		}
    	}
    	else
    	{
    		$resultats['black_list']='not';
    	}
    
    
    	return $resultats;
    }
    $test="En dehors des classes de caractères, un antislash suivi d'un nombre plus grand que 0
    (et possiblement plusieurs chiffres) est une référence arrière (c'est à dire vers la gauche)
    dans le masque, en supposant qu'il y ait suffisamment de sous-masques capturants précédents.
    Cependant, si le nombre décimal suivant l'antislash est plus petit que 10, il sera toujours
    considéré comme une référence arrière, et cela générera une erreur si le nombre de captures
    n'est pas suffisant. En d'autres termes, il faut qu'il existe suffisamment de parenthèses
    ouvrantes à gauche de la référence, surtout si la référence est inférieure à 10. Une 'référence
    arrière vers l'avant' peut avoir du sens lorsqu'une répétition est isolée et que le sous masque
    à droite a participé dans l'itération précédente. Reportez-vous à la section 'antislash' pour
    avoir de plus amples détails à propos du nombre de chiffres qui suivent l'antislash.
    La référence arrière remplace ce qui a été capturé par un sous-masque dans le masque courant,
    plutôt que remplacer le sous-masque lui-même.";
    echo '<pre>';
    print_r(analyse_text($test,true,true,true,true,true,true,true));
    echo '</pre>';
    
    echo '<br />Temps d\'exécution : '.round(microtime(true)-$_VAR['system']['time_start'], 3).' secondes.<br />';
    exit();
    Je vais bientot faire un script de génération de captcha, alors je cherche à faire quelque chose de simple pour un humain, mais difficile pour un robot (utopie? )

    Bref, pour le moment, ça serais un captcha avec 3 images, dont une en display:none, gif animé faiblement, avec quelques trais et petits caractères en fond

    J'ai trouver quelques liens sympa =D

    http://www.tutomania.com/Blog-de-Igixcs.html#b-651
    http://theclemsweb.free.fr/index.php...ots-&article=8

    Voilà ma fonction php terminée
    Code:
    <?php
    function captcha()
    {
    	header ("Content-type: image/png");
    
    	$captcha_string="abcdefghijklmnopqrstuvwxyz123456789";
    	$strlen_captcha_string=strlen($captcha_string);
    	$captcha_lenght=10;
    	for($i=0; $i<$captcha_lenght; $i++)
    	{
    		@$captcha.= $captcha_string[rand()%$strlen_captcha_string];
    	}
    	unset($captcha_string);
    	unset($captcha_lenght);
    	unset($strlen_captcha_string);
    	unset($i);
    	//on ne garde QUE les variables qu'on va utiliser plus tard
    
    
    	$captcha=$captcha;//bah quoi ? ^^"
    
    	$lag_width = 0;//decallage horizontal
    	$lag_height = 0;//decallage vertical
    	$facteur_multi_width_picture=1.5;//pour multiplier la largeur de l'image par rapport à la taille du captcha
    	$facteur_multi_height_picture=1.5;//pour multiplier la hauteur de l'image par rapport à la taille du captcha
    	$facteur_multi_width_lettre=1.5;//pour multiplier la largeur d'un caractère par rapport à la taille du captcha
    	$frequence_hachure=15;
    	$angle_hachure=15;
    
    	$size = 32;//taille de police
    	$font='./trashco.ttf';//emplacement de la police
    	$box = imagettfbbox($size, 0,$font,$captcha);//information sur le captcha graphique
    
    	$width_captcha = ($box[2]-$box[0]);//largeur du captcha != largeur de l'image
    	$height_captcha= ($box[1]-$box[7]);//hauteur du captcha != hauteur de l'image
    
    	$width_picture = $width_captcha*$facteur_multi_width_picture;//calcul de la largeur de l'image
    	$height_picture= $height_captcha*$facteur_multi_height_picture;//calcul de la hauteur de l'image
    	$width_lettre = round($width_captcha/strlen($captcha))*$facteur_multi_width_lettre;//calcul de la largeur d'un caractère
    
    	//Pour mettre un flou
    	$matrix_blur = array(
    		array(1,2,1),
    		array(2,4,2),
    		array(1,2,1)
    	);
    
    	$picture = imagecreate($width_picture,$height_picture);//création de l'image
    	//$picture = imagecreatetruecolor(200, 150)
    	//$picture = imagecreatefrompng("http://www.siteduzero.com/Templates/images/smilies/smile.png");
    	//$picture = imagecreatefromjpeg("couchersoleil.jpg");
    
    	//génération des couleurs
    	$blanc		=imagecolorallocate($picture, 255, 255, 255);#/!\ l'image seras sur fond blanc!!
    	$noir			= imagecolorallocate($picture, 0, 0, 0);
    	$orange		= imagecolorallocate($picture, 255, 128, 0);
    	$bleu			= imagecolorallocate($picture, 0, 0, 255);
    	$bleuclair	= imagecolorallocate($picture, 156, 227, 254);
    	$noir			= imagecolorallocate($picture, 0, 0, 0);
    
    	$colors=array($noir,$orange,$bleu,$bleuclair,$noir);//l'array qui contient les couleurs que peut prendre le captcha
    
    	//façon d'écrire le captcha sans ttf
    	//imagestring($picture, $size, strlen($captcha)*5,$width_lettre,$captcha, $colors[mt_rand(0,count($colors)-1)]);
    
    	//façon d'écrire le captcha avec ttf, mais en une fois
    	//imagettftext($picture, $size,0,(($width_picture-$width_captcha)/2)+$lag_width,(($height_picture-$height_captcha)/2)+$lag_height+$size,$colors[mt_rand(0,count($colors)-1)],$font, $captcha);
    
    	$width_lettre=$width_lettre/1.25;//on diminue la taille d'un caractère afin d'eviter d'en "perdre un" 
    	//je commence à 1, ainsi le premier caractère n'est pas collé au cadre
    	for($i = 1; $i <= strlen($captcha);++$i)
    	{
    		imagettftext($picture, $size,mt_rand(-35,35),($i*$width_lettre)+$lag_width,(($height_picture-$height_captcha)/2)+$lag_height+$size,$colors[mt_rand(0,count($colors)-1)],$font, $captcha[$i-1]);
    	}
    
    	imagerectangle($picture,0,0,$width_picture-1,$height_picture-1,$noir); // La bordure
    
    	imageline($picture, 0,mt_rand(1,$height_picture),$width_picture, mt_rand(1,$height_picture),$colors[mt_rand(0,count($colors)-1)]);//un trai aléatoire
    
    	for($x=5; $x<$width_picture; $x+=$frequence_hachure)
    	{
    		imageline($picture, $x,0,$x-$angle_hachure,$height_picture,$noir);//les hachures
    	}
    
    	$diviseur=
    		$matrix_blur[0][0]+$matrix_blur[0][1]+$matrix_blur[0][2]+
    		$matrix_blur[1][0]+$matrix_blur[1][1]+$matrix_blur[1][2]+
    		$matrix_blur[2][0]+$matrix_blur[2][1]+$matrix_blur[2][2];
    
    	imageconvolution($picture, $matrix_blur,$diviseur,0); // On applique la matrice, avec un diviseur 16
    
    	//$blanc = imagecolorallocate($picture, 255, 255, 255);
    
    	//imagestring				($picture,$font,$x,$y,$string,$color);
    	//imagesetpixel			($picture,$x,$y,$color);
    	//imageline					($picture,$x1,$y1,$x2,$y2,$color);
    	//imageellipse				($picture,$x,$y,$width,$height,$color);
    	//imagefilledellipse		($picture,$x,$y,$width,$height,$color);
    	//magerectangle			($picture,$x1,$y1,$x2,$y2,$color);
    	//imagefilledrectangle	($picture,$x1,$y1,$x2,$y2,$color);
    	//imagepolygon				($picture,$array_points,$nomber_of_points,$color);
    	//imagefilledpolygon		($picture,$array_points,$nomber_of_points,$color);
    
    	//imagesetthickness		($picture,$epaisseur);
    
    	//imagecolortransparent($picture,$orange);
    
    	//$largeur_destination = imagesx($destination);
    	//$hauteur_destination = imagesy($destination);
    
    	//imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 60);
    
    	//imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
    
    	imagepng($picture);
    
    	imagedestroy($picture);
    	//imagejpeg($picture);
    	//imagepng($picture, "picture/mypicture.png")
    }
    (si quelqu'un sait pourquoi il faut ABSOLUMENT passer un argument, je suis interessé...)

    Autre fonction que je viens de terminer
    Un script de bannisement d'ip, qui utilise une base sql pour faciliter les levés de ban automatiques mais qui possede un systeme de blacklist.txt =D Et le mieux, c'est qu'il gere parfaitement les plages d'ip Il suffit simplement de mettre une ligne sans mettre le point à la fin (genre 154.30)
    EDIT: J'ai corriger (j'aime toujours chercher plus loin et améliorer ) désormais si vous metter un point et rien derrière, ça marche aussi

    Code:
    <?php
    function anti_banned()
    {
    	global $_VAR;global $_TEXT;global $_BOOT_02;global $_BOOT_03;
    
    	$file=$_VAR['system']['path'].'/papers/setting/blacklist.txt';
    	if(is_file($file))
    	{
    		$lines = file($file);
    		foreach ($lines as $line_num => $line)
    		{
    			$ip_a=explode('.',$_SERVER['REMOTE_ADDR']);
    			$ip_b=explode('.',$line);
    
    			if(isset($ip_b[0])&&$ip_b[0]==''){unset($ip_b[0]);}
    			if(isset($ip_b[1])&&$ip_b[1]==''){unset($ip_b[1]);}
    			if(isset($ip_b[2])&&$ip_b[2]==''){unset($ip_b[2]);}
    			if(isset($ip_b[3])&&$ip_b[3]==''){unset($ip_b[3]);}
    
    			$compare=NULL;
    
    			$nbr_b=count($ip_b);
    			if($nbr_b>=1)
    			{
    				$compare.=$ip_a[0];
    			}
    			if($nbr_b>=2)
    			{
    				$compare.='.'.$ip_a[1];
    			}
    			if($nbr_b>=3)
    			{
    				$compare.='.'.$ip_a[2];
    			}
    			if($nbr_b>=4)
    			{
    				$compare.='.'.$ip_a[3];
    			}
    			if($compare==trim($line) || $compare.'.'==trim($line))
    			{
    				echo 'Tu est un banni!';
    				exit();
    			}
    		}
    	}
    	else
    	{
    		echo 'Fail Open File Blacklist ip!!';
    	}
    	try
    	{
    		//premiere requete pour savoir si l'utilisateur est banni
    		$request = $_VAR['system']['data_base']->prepare("SELECT COUNT(*) AS ip FROM ip_banned WHERE ip= ? LIMIT 0, 1");
    		$request->execute(array(
    			retrieve_ip()
    		));
    		$data = $request->fetch();
    		$ip=$data['ip'];
    		$request->closeCursor();
    
    		if ($ip>=1)//si l'ip de l'utilisateur se trouve dans la base de données des bannis
    		{
    			$request = $_VAR['system']['data_base']->prepare("SELECT * FROM ip_banned WHERE ip= ? LIMIT 0, 1");
    			$request->execute(array(
    				retrieve_ip()
    			));
    			$data=$request->fetch();
    				$id					=$data['id'];
    				$ip					=$data['ip'];
    				$time_banned		=$data['time_banned'];
    				$number_visit		=$data['number_visit']+1;
    				$time_last_visit	=$data['time_last_visit'];
    
    			//on met à jour les informations sur le banni dans la bbd (inutile mais bon... :) )
    			$request = $_VAR['system']['data_base']->prepare('UPDATE ip_banned SET number_visit = :number_visit, time_last_visit = :time_last_visit WHERE id = :id');
    				$request->execute(array(
    				'number_visit'		=> $number_visit,
    				'time_last_visit'	=> time(),
    				'id'					=> $id
    			));
    
    			//on lui met un petit message et on arrete le script (lui bloquant acces au site)
    			echo "<script>alert(\"t'es déjà banni, petit con ! tu viens de l'ip : ".retrieve_ip().'\n et ça fait '.$number_visit.' que tu viens faire le chieur >_<\"");</script>';
    			exit();
    		}
    	}
    	catch(Exception $e)
    	{
    		die('Error : '.$e->getMessage());
    	}
    }
    [hr]
    Anti dos (très simpliste, inutile, mais indispensable )
    Code:
    <?php
    function anti_ddos()
    {
    	global $_VAR;global $_TEXT;global $_BOOT_02;global $_BOOT_03;
    	try
    	{
    		//on regarde si l'ip est déjà dans la table des connectés
    		$request = $_VAR['system']['data_base']->prepare("SELECT COUNT(*) AS ip FROM current_connection WHERE ip= ? LIMIT 0, 1");
    		$request->execute(array(
    			retrieve_ip()
    		));
    		$data = $request->fetch();
    		$ip=$data['ip'];
    		$request->closeCursor();
    
    		if ($ip>=1)//si l'ip de l'utilisateur se trouve déjà dans la table
    		{
    			//on récupere les données déjà stocker
    			$request = $_VAR['system']['data_base']->prepare("SELECT * FROM current_connection WHERE ip= ? LIMIT 0, 1");
    			$request->execute(array(
    				retrieve_ip()
    			));
    			$data = $request->fetch();
    				$quota				=$data['quota'];
    				$last_connection	=$data['last_connection'];
    			$request->closeCursor();
    
    			//maitenant on les modifie ;)
    			$new_quota=$quota+1-floor(((int)time()-(int)$data['last_connection'])/$_VAR['system']['minimum_waiting_time']);
    			if($new_quota<0){$new_quota=0;}//on evite que le nombre soit négatif
    			$request = $_VAR['system']['data_base']->prepare('UPDATE current_connection SET quota = :quota, last_connection = :last_connection WHERE ip = :ip');
    			$request->execute(array(
    				'quota'				=> $new_quota,
    				'last_connection'	=> time(),
    				'ip'					=> retrieve_ip()
    			));
    
    			if($new_quota>$_VAR['system']['maximun_number_connection'])
    			{
    				ip_ban();
    				echo "<script>alert(\"tu vient d'etre banni pour flood/ddos, petit con ! tu viens de l'ip : ".retrieve_ip().' !");</script>';
    				exit();
    			}
    			//on affiche les données (pour mon débeugage surtout et les test de ddos )
    /*
    			echo
    				'ip : '.retrieve_ip().'<br />'.
    				'ancien quota : '.$quota.'<br />'.
    				'différence   : '.floor(((int)time()-(int)$data['last_connection'])/$_VAR['system']['minimum_waiting_time']).'<br />'.
    				'new    quota : '.$new_quota.'<br />'.
    				'time :'.time().'<br />';
    */
    		}
    		else
    		{
    			//on le rajoute dans la table :)
    			$request = $_VAR['system']['data_base']->prepare('INSERT INTO current_connection(ip, quota, last_connection) VALUES(:ip, :quota, :last_connection)');
    			$request->execute(array(
    				'ip'					=> retrieve_ip(),
    				'quota'				=> 1,
    				'last_connection'	=> time(),
    			));
    		}
    	}
    	catch(Exception $e)
    	{
    		die('Error : '.$e->getMessage());
    	}
    }
    Je devrais vous faire payer pour de telles fonctions
    admirez celle-là (et surtout l'inutilité ^^' )
    Code:
    <?php
    function scan_directory($name_directory=null,$display=false,$erase=false)
    {
    	/*
    		Version 1.0
    		Cette fonction "Scan Récursif de Répertoire " possède 3 parametres:
    		FACULTATIF	: le 1er est le répertoire qu'on veut analyser (par défault la racine du site)
    		FACULTATIF	: le 2eme est un booleen qui définie l'affichage ou non de l'arboresance du répertoire (par défault false)
    		FACULTATIF	: le 3eme est un booleen qui définie l'effacement des fichiers temporaires dans l'arborescance du ficher
    
    		Exemple d'appel : scan_directory(null,true,true);
    		Afficheras l'arborescance, supprimeras les fichiers temporaire et retourneras un array d'informations.
    
    		Elle retourne un array d'informations sur :
    		le nombre total de répertoire,
    		le nombre total de fichiers,
    		le nombre total de lignes,
    		le nombre total de caractères,
    
    		le nombre de fichiers selon leurs extention,
    		le nombre de lignes selon leurs extention,
    		le nombre de caractères selon leurs extention,
    	*/
    
    	global $result;
    
    	if($name_directory==null)
    	{
    		$name_directory=$_SERVER['DOCUMENT_ROOT'];
    	}
    
    	$directory = opendir($name_directory) or die('Error!');
    	while($entry = @readdir($directory))
    	{
    		if($entry != '.' && $entry != '..')
    		{
    			$path=realpath($name_directory.'/'.$entry);
    			if(is_dir($name_directory.'/'.$entry))
    			{
    				@$result['nbr_repertory']++;
    				if($display==true)
    				{
    					echo '<li><span style="color:red;">',$entry,'</span></li><ul>';
    				}
    				scan_directory($name_directory.'/'.$entry,$display);
    				if($display==true)
    				{
    					echo '</ul>';
    				}
    			}
    			elseif(is_file($name_directory.'/'.$entry))
    			{
    				@$result['nbr_file_total']++;
    				if(substr($entry, -1)=='~')
    				{
    					@$result['nbr_file']['cache']++;
    					if($erase==true)
    					{
    						unlink(realpath($name_directory.'/'.$entry));
    					}
    				}
    				else
    				{
    					$ext=strrchr($entry,'.');
    					@$result['nbr_file'][$ext]++;
    					$array=array_flip(array('.php','.html','.css','.js','.txt','.xml'));
    					if(array_key_exists($ext,$array))
    					{
    						$line=count(file($name_directory.'/'.$entry));
    						@$result['nbr_line_total']+=$line;
    						@$result['nbr_line'][$ext]+=$line;
    
    						$nbr_caracter=mb_strlen(file_get_contents($name_directory.'/'.$entry));
    						@$result['nbr_caracter_total']+=$nbr_caracter;
    						@$result['nbr_caracter'][$ext]+=$nbr_caracter;
    
    						if($display==true)
    						{
    							echo '<li><span style="color:blue;">',$entry,' ( ',$nbr_caracter,' caractères dans ',$line,' lignes)</span></li>';
    						}
    					}
    					else
    					{
    						if($display==true)
    						{
    							echo '<li><span style="color:blue;">',$entry,'</span></li>';
    						}
    					}
    				}
    			}
    		}
    	}
    	closedir($directory);
    	return $result;
    }

    minifier du code (j'ai testé du css, pas du js encore..)
    C'est pas vraiment une fonction car il y a deux bout

    Tout en haut du fichier :
    Code:
    <?php header('Content-type: text/css');ob_start('');?>
    Et en bas :
    Code:
    echo str_replace(array("\n","\r","\t"," "),'', ob_get_clean());
    Ok d'accord, c'est tout con mais ça fait gagner un peu peu encore FAITES ATTENTION aux commentaire sur une ligne!!!!! comme le code à la fin n'as qu'une seule ligne, ça fout en l'air votre code... (en css ça existe pas les // ou #, en js je croit me souvenir que c'est pareil, mais bon... je préfère le dire )

    Petit code pour faire des logs avec firephp
    Code:
    $_VAR['debug']['object']->log(
    	(string)(number_format(microtime(true),4, '.', '')).' :: '.
    	(string)(number_format(microtime(true)-$_VAR['core']['01']['time_start'],4)).' :: '.
    	(string)(number_format(microtime(true)-$_VAR['debug']['last_time'],4)).' :: end of page'
    );$_VAR['debug']['last_time']=microtime(true);
    $_VAR['core']['01']['time_start'] est une variable que je crée au début de ma page


    Include sécurisé
    Code:
    if(!empty($_GET['repertory']) && !empty($_GET['file']))//si les parametres ne sont pas vides
    {
    	//on fait les tests pour éviter les backhat :p
    	$search  = array('/', '\\', '.','%');
    	$replace = 'blackhat';
    	$repertory = str_replace($search, $replace, $_GET['repertory']);
    	$file = str_replace($search, $replace, $_GET['file']);
    	$file=rtrim(strtolower($file));
    	//desormais tous les caractères pouvant genées ont étaient remplacés
    
    	// /!\ J'ai utiliser la methode en haut uniquement pour détecter un VRAI blackhat
    	// Ce qui suit suffit en lui-meme, mais j'aime le fait de laisser un message pour les blackhat :demon:
    
    	if ($repertory!==$_GET['repertory'] || $file!==$_GET['file'])//si des remplacements ont étaient effectués
    	{
    		//c'est qu'il y a une raison! On le redirige vers l'url nettoyée (pour lui montrer qu'on n'est pas con :D )
    		header('Location: '.$_VAR['core']['01']['url'].'/index.php?repertory='.$repertory.'&file='.$file);
    		exit();
    	}
    	elseif (preg_match('/'.$replace.'/', 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']))//si on trouve blackhat dans l'url c'est donc qu'il vient de la redirection (ou qu'il se proclame lui-meme blackhat, C'EST PIRE!! )
    	{
    		unset($search,$replace);//on n'en n'as plus besoin, on les supprime ;)
    		\core_01\ip_ban();//on le bannis
    	}
    	elseif (isset($_VAR['core']['01']['pages_authorized'][$repertory][$file]))//si le fichier demander est autoriser
    	{
    		unset($search,$replace);//on n'en n'as plus besoin, on les supprime ;)
    		if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_accept_page']))#si un message existe
    		{
    			#on affiche une pop-up
    			echo '<script>alert("',\core_01\write('core','01','message_accept_page'),'");</script>';
    		}
    
    		if($_VAR['core']['01']['pages_authorized'][$repertory][$file]==true)//si le fichier n'est pas bloquer
    		{
    			if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_accesible_page']))#si un message existe
    			{
    				#on affiche une pop-up
    				echo '<script>alert("',\core_01\write('core','01','message_accesible_page'),'");</script>';
    			}
    
    			if (file_exists($_VAR['core']['01']['path'].'/bundles/'.$repertory.'/'.$file))//si le repertoire existe
    			{
    				if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_find_directory']))#si un message existe
    				{
    					#on affiche une pop-up
    					echo '<script>alert("',\core_01\write('core','01','message_find_directory'),'");</script>';
    				}
    
    				if (file_exists($_VAR['core']['01']['path'].'/bundles/'.$repertory.'/core_02/boot_02.php') &&
    					file_exists($_VAR['core']['01']['path'].'/bundles/'.$repertory.'/'.$file.'/controller.php')
    				)#si les fichiers qu'on l'on veut inclure existent bien
    				{
    					#on crée ces deux variables qu'on vas réutiliser plus tard (dans les fichiers includes)
    					$_VAR['core']['02']['repertory']=$repertory;
    					$_VAR['core']['02']['file']=$file;
    					unset($repertory,$file);//on n'en n'as plus besoin, on les supprime ;)
    					#include du core_02 qui correspond au bundles demander.
    					include($_VAR['core']['01']['path'].'/bundles/'.$_VAR['core']['02']['repertory'].'/core_02/boot_02.php');
    					#include le controleur qui correspond à la page
    					include($_VAR['core']['01']['path'].'/bundles/'.$_VAR['core']['02']['repertory'].'/'.$_VAR['core']['02']['file'].'/controller.php');
    				}
    				else
    				{
    					unset($repertory,$file);//on n'en n'as plus besoin, on les supprime ;)
    					if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_accesible_page']))#si un message existe
    					{
    						#on affiche une pop-up
    						echo '<script>alert("',\core_01\write('core','01','message_error_inclusion_files_page'),'");</script>';
    					}
    					else
    					{
    						echo \core_01\write('core','01','message_error_global');
    					}
    				}
    			}
    			else
    			{
    				unset($repertory,$file);//on n'en n'as plus besoin, on les supprime ;)
    				if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_error_directory_not_found']))#si un message existe
    				{
    					#on affiche une pop-up
    					echo '<script>alert("',\core_01\write('core','01','message_error_directory_not_found'),'");</script>';
    				}
    				else
    				{
    					echo \core_01\write('core','01','message_error_global');
    				}
    			}
    		}
    		else
    		{
    			if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_page_in_maintenance']))#si un message existe
    			{
    				#on affiche une pop-up
    				echo '<script>alert("',\core_01\write('core','01','message_page_in_maintenance'),'");</script>';
    			}
    			else
    			{
    				echo \core_01\write('core','01','message_error_global');
    			}
    		}
    	}
    	else
    	{
    		if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_refused_page']))#si un message existe
    		{
    			#on affiche une pop-up
    			echo '<script>alert("',\core_01\write('core','01','message_refused_page'),'");</script>';
    		}
    		else
    		{
    			echo \core_01\write('core','01','message_error_global');
    		}
    	}
    }
    else //si un parametre est manquant
    {
    	if(!empty($_TEXT[$_VAR['core']['01']['language_by_default']]['core']['01']['message_parameters_empty']))#si un message existe
    	{
    		#on affiche une pop-up
    		echo '<script>alert("',\core_01\write('core','01','message_parameters_empty'),'");</script>';
    	}
    	echo 'VIDE VIDE VIDE VIDE VIDE!!!';
    }
    Envie de te prendre comme youtube ? Installe ce script (attention il consomme beaucoup de cpu à cause de GD mais j'ai fait ce script pour quelqu'un qui voulait une image, pas du css d'aileurs en css c'est peut-etre plus compliqué qu'il n'y parait ) Je vais essayer de l'améliorer en pouvant changer la taille dynamiquement ou de mettre autant de colonnes, avec des indicateurs de nombre, un copyright nan je rigole pour le dernier : )

    Code:
    <?php
    function image($plus,$moins)
    {
    	$plus=(int)$plus;
    	$moins=(int)$moins;
    
    	$pourcentage_plus =$plus/ ($plus+$moins)*100;
    	$pourcentage_moins=$moins/($plus+$moins)*100;
    
    	$width_picture=120;
    	$height_picture=200;
    
    	if($plus>=0 && $moins>=0)
    	{
    		header ("Content-type: image/png");
    
    		$picture = imagecreate($width_picture,$height_picture);
    
    		$blanc	=imagecolorallocate($picture, 255, 255, 255);
    		$green	=imagecolorallocate($picture, 0, 255, 0);
    		$red		=imagecolorallocate($picture, 255, 0, 0);
    
    		imagefilledrectangle($picture,10,199,50,($height_picture/100)*$pourcentage_moins, $green);
    		imagefilledrectangle($picture,100,199,60,($height_picture/100)*$pourcentage_plus, $red);
    		imagepng($picture);
    	}
    	else
    	{
    		echo 'error';
    	}
    }
    image(50,30);
    Dernière modification par Sonn, 12 avril 2012, 19h58.
    "Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw

  • #2
    Merci de remplacer [php] par [code] Car sinon sa ne passe pas.
    "Exeunt les délires de l'amour entés sur une pratique non maîtrisée du sexe. Exit derechef la passion voluptueuse qui fait voir l'être aimé toujours autre qu'il n'est et qui pousse à posséder ce qu'on ne peut pas posséder." Epicure

    Commentaire


    • #3
      oups, désolé j'ai meme pas fait gaffe en copiant mon topic d'un forum à ici
      "Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw

      Commentaire


      • #4
        Je t'ai mis un +10 bien mérité

        Merci beaucoup !
        sigpic

        Cyprium Download Link

        Plus j'étudie plus j'me rends compte que je n'sais rien.

        †|

        Commentaire


        • #5
          De rien, vive le partage et puis c'est normal d'avoir pas mal de code quand on veut se faire un framework
          "Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw

          Commentaire

          Chargement...
          X