Reperage d'informations personnelles avec regexp

3/5 (8 avis)

Snippet vu 5 454 fois - Téléchargée 21 fois

Contenu du snippet

Ces regexp ont ete developpees pour une recherche d'informations personnelles dans un cv donc beaucoup de mise en forme differentes a gerer.
Vous y trouverez des regpex pour :
nom, prenom
civilite
adresse
code postal
ville
email
numero de telephone (fixe et portable)
age
experiences professionnelles (poste et societe)
formation (diplome, etablissement)
langues (a ameliorer)
divers
Apres plusieurs affinages voila le resultat, si vous avez des commentaires/conseils constructifs j'en serais ravi.

Source / Exemple :


<?php
echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">';

//pratique pour les regexp
function accent($chaine)
{
   $accent  ="ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿ";
   $noaccent="aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyyby";
   return strtr(trim($chaine),$accent,$noaccent);
} 

if(isset($_FILES["fichier"]["name"])) {

        //cette partie doit etre grandement amelioree niveau securite

	if(empty($_FILES["fichier"]["name"])) echo "Veuillez indiquer le chemin du fichier";

	$dir="Upload\\";
	$fichier=$dir . basename($_FILES["fichier"]["name"]);
	$tmp=$_FILES["fichier"]["tmp_name"];
	$size=$_FILES["fichier"]["size"];
	
	if(!is_uploaded_file($tmp)) { echo " fichier absent"; };
	if(!move_uploaded_file($tmp, $fichier)) { echo " pb deplacement "; };

	echo "$fichier <br>";
	echo "$size <br>";

	$com = 'antiword -t "'.$fichier.'" > temp.txt';
	echo "$com <br>";
	
	if(exec($com)) echo "conversion reussie"; 

	if($handle = fopen("temp.txt", "rb")) {
	echo "ouverture reussie <br>";
	}
	
        //pre-affichage

	while (!feof($handle)) {
		$buffer = fgets($handle, 4096);
		$buffer = preg_replace(array('#[|]#s','#^-#','#^?#','#^[(]#','#^[ ]#'), '', trim($buffer));
		$buffer = preg_replace('#([ ][ ]+)#s', ' ', trim($buffer));
		$buffer = accent($buffer);
		echo "ligne : $buffer<br>";
	}
   fclose($handle);
   
   if(false !== ($handle = fopen('temp.txt', 'rb'))) {
	echo "ouverture reussie <br>";
	}
		
	$j=0;
	$c=0;
	$d=0;
	$k=0;
	$z=0;
	$f=0;
	$societe="";
	$prenom="";
	$nom="";
	$adresse="";
	$ville="";
	$cp="";
	$divers="";
	$taille=0;
	$age=0;
	$l=false;
	$testVille=false;
	$testNom=false;
	$testCiv=false;
	$testEmail=false;
	$testAdresse=false;
	$testFixe=false;
	$testPort=false;
	$testCp=false;
	$testAge=false;
	$testExp=false;
	$testForm=false;
		
	while (feof($handle)===false) {
		if($testForm==true && $testExp==false && $z<=250){
		$z++;
		}else{
		$buffer = fgets($handle, 4096);
                //on vire les saloperies de debut de ligne
		$buffer = preg_replace(array('#[|]#s','#^-#','#^?#','#^[(]#','#^[ ]#'), '', trim($buffer));
                //on remplace les espaces mutliples
		$buffer = preg_replace('#([ ][ ]+)#s', ' ', trim($buffer));
		$buffer = accent($buffer);
		}
		
                //Si vous avez du mal a voir a quoi sert la regexp, regardez le nom du booleen

		if(preg_match('#(M(onsieur|adame|mademoiselle|r|d|lle))#',$buffer,$out) !==0 && $testCiv===false) { 
			$civilite = $out[0];
			print_r($out);
			echo "<br>";
			echo $buffer = str_replace($civilite, '', $buffer); 
			echo "<br>civilite : $civilite<br>";
			$testCiv=true;
			echo"je suis passe dans la boucle civilite<br>";
		}
			
		if(preg_match('#[A-Z]:alpha:+(?:\s)?[-?]?(?:\s)?([A-Z]:alpha:+)?(?:\s)?([A-Z]:alpha:+)?(?:\s)?[-?]?(?:\s)?[A-Z]:alpha:+\s*#',$buffer,$out) !==0 && $testNom===false) {
			$res = preg_split('# #', $buffer, -1, PREG_SPLIT_NO_EMPTY);
			$testNom=true;
			switch (count($res)) {
				case (2) : $prenom = $res[0]; $nom = $res[1];
					break;
					
				case (3) : $prenom = $res[0]; $nom = $res[1].' '.$res[2];
					break;
					
				case (4) : 
					if ( $res[1]=="-" || $res[1]=="?") { 
						$prenom = $res[0].' '.$res[1].' '.$res[2];
						$nom = $res[3];
						break; }
					if ( $res[2]=="-" || $res[2]=="?") {
						$prenom = $res[0];
						$nom = $res[1].' '.$res[2].' '.$res[3]; 
						break; 
						}else{
							$prenom = $res[0];
							$nom = $res[1].' '.$res[2].' '.$res[3];
							break;
						}
							
				case (5) :
					if ($res[1]=="-" || $res[1]=="?") {
						$prenom = $res[0].' '.$res[1].' '.$res[2];
						$nom = $res[3].' '.$res[4];
						break;
						}
					if ( $res[3]=="-" || $res[3]=="?") {
						$prenom = $res[0];
						$nom = $res[1].' '.$res[2].' '.$res[3].' '.$res[4];
						break;
						}
							
					case (6) :
						$prenom = $res[0].' '.$res[1].' '.$res[2];
						$nom = $res[3].' '.$res[4].' '.$res[5];
						break;
			}
			echo "nom : $nom<br>";
			echo "prenom : $prenom<br>";
		}
			
		if(preg_match('#([0-9]{1,3})[, ]?(?:[a-zA-Z]{1,3})?[, ]?(rue|avenue|boulevard|impasse|cours)(?:,)?(?:\s)?([-?\'0-9[:alpha:]](?:\s)?)+\s*#i', $buffer, $out) !==0 && $testAdresse===false) {
			$adresse = $out[0];
			echo "adresse : $adresse<br>";
			$testAdresse=true;
		}
			
		if(preg_match('#(([0-9](?:\s)?){5})\s([-?[:alpha:]](?:\s)?)+\s*#', $buffer, $out) !==0 && $testCp===false) {
			$res = preg_split('# #', $buffer, -1, PREG_SPLIT_NO_EMPTY);
			$testCp=true;
			$pm = sizeof($res);
			for ($i=0; $i<=sizeof($res)-1; $i++) {
				if (preg_match('#[0-9]{2}|[0-9]{3}#', $res[$i], $out) !==0 && $j<=2) {
					$cp .= $res[$i];
					if(preg_match('#[0-9]{5}#', $cp, $out)) {
						$j=3;
					}
				$j++;
				}
				
				if (preg_match('#((:alpha:(?:\s)?)[-?]?(?:\s)?)+#', $res[$i], $out) !==0 && $testVille===false) {
					$ville .= $out[0].' ';
				}
			}
			echo "ville : $ville<br>";
			echo "cp : $cp<br>";
		}
		
		if(preg_match('#[a-z0-9]([-_.]?[a-z0-9])+@[a-z0-9]([-_.]?[a-z0-9])+\.[a-z]{2,5}$#ixm', $buffer, $out) !==0 && $testEmail===false) {
			$email = $out[0];
			echo " email : $email<br>";
			$testEmail = true;
		}
			
		if(preg_match('#[0][1234589][- \.?]?([0-9][0-9][- \.?]?){4}#', $buffer, $out) !==0 && $testFixe===false) {
			$telFixe = $out[0];
			echo "fix : $telFixe<br>";
			$buffer = str_replace($telFixe, '', trim($buffer));
			$testFixe=true;
		}
			
		if(preg_match('#[0][6][- \.?]?([0-9][0-9][- \.?]?){4}#', $buffer, $out) !==0 && $testPort===false) {
			$telPort = $out[0];
			echo "portable : $telPort<br>";
			$buffer = str_replace($telPort, '', trim($buffer));
			$testPort=true;
		}
			
		if(preg_match('#(^(age :[ ]*))?(^([0-9]{2}))[ ][a][n][s][ ]*#i',$buffer, $out) !==0 && $testAge===false) {
			if(preg_match('#exp(é|e)rience#', $buffer, $out)){
				}else{
			echo "bufAge : $buffer<br>";
			print_r($out);
			$testAge=true;
			$res = preg_split('# #', $buffer, -1, PREG_SPLIT_NO_EMPTY);
			$age = date('Y') - $res[0];
			echo "<br>age : $age<br>";
				}
			
		}
		
		if(preg_match('#((Né)[e]?)?[ ](le|:|en)?[ ]([0-2][0-9]|[3][0-1]|[0-9])[-?/ ]([0][1-9]|[1][0-2])?(:alpha:+)?[-?/ ]([0-9]{2,4})#ixm', $buffer, $out) !==0 && $testAge===false) {
			$buffer = strtolower($buffer);
			$buffer = accent($buffer);
			$testAge=true;
			$taille=sizeof($out);
			$pos = 3;
			for ($i=0; $i<=$taille-1; $i++) {
				if(preg_match('#:alpha:#i', $out[$i], $res)) {
					$out[$i] = strtolower($out[$i]);
					$out[$i] = accent($out[$i]);
                                        //un preg_replace a venir
					switch($out[$i]) {
						case('janvier') : { $out = str_replace($out[$i], '01', $out);$pos = 2;break; }
						case('fevrier') : { $out = str_replace($out[$i], '02', $out);/*echo "<br>apres : ";print_r($out);echo"<br>"*/;$pos = 2;break; }
						case('mars') : { $out = str_replace($out[$i], '03', $out);$pos = 2;break; }
						case('avril') : { $out = str_replace($out[$i], '04', $out);$pos = 2;break; }
						case('mai') : { $out = str_replace($out[$i], '05', $out);$pos = 2;break; }
						case('juin') : { $out = str_replace($out[$i], '06', $out);$pos = 2;break; }
						case('juillet') : { $out = str_replace($out[$i], '07', $out);$pos = 2;break; }
						case('aout') : { $out = str_replace($out[$i], '08', $out);$pos = 2;break; }
						case('septembre') : { $out = str_replace($out[$i], '09', $out);$pos = 2;break; }
						case('octobre') : { $out = str_replace($out[$i], '10', $out);$pos = 2;break; }
						case('novembre') : { $out = str_replace($out[$i], '11', $out);$pos = 2;break; }
						case('decembre') : { $out = str_replace($out[$i], '12', $out);$pos = 2;break; }
					}
				}
			}
						
			if(preg_match('#\b[0-9]\b#', $out[$taille-4], $res)) $out[$taille-4] = '0'.$out[$taille-4];
			
			if(preg_match('#([0-9]{4})#',$out[$taille-1], $res)) {
				$age = $out[$taille-1].'-'.$out[$taille-$pos].'-'.$out[$taille-4];
				$buffer = str_replace($out,'',trim($buffer));
					}else{
						if(preg_match('#([0-9]{2})#',$out[$taille-1], $res)) {
						$age = '19'.$out[$taille-1].'-'.$out[$taille-$pos].'-'.$out[$taille-4];
						$buffer = str_replace($out,'',trim($buffer));
						}
					}
				echo "age : $age<br>";
		}
		
		$buffer = accent($buffer);
		
		if(preg_match('#((experience[s]?|parcours)[ ](professionnel(le)?[s]?))#i', $buffer, $out) && $testExp==false ) {
			while(preg_match('#^([ ]*[F](ormation|ORMATION))|([L](angues|ANGUES))|^([D](ivers|IVERS))\b|([L](oisirs|OISIRS))|([D](iplome|IPLOME)[sS]?)#', $buffer, $out) == 0 ) {
				$buffer = fgets($handle, 4096);
				$buffer = preg_replace(array('#[|]#s','#^-#','#^?#','#^[(]#','#^[ ]#'), '', trim($buffer));
				$buffer = preg_replace('#([ ][ ]+)#s', ' ', trim($buffer));
				$buffer = accent($buffer);
					
				if(feof($handle)) break; // quand je met ca dans le while ca ne marche jamais -> ???
					
				if(preg_match('#(([0-2][0-9]|[3][0-1]|[0-9])?[-?/]?([0][1-9]|[1][0-2])?(:alpha:+)?[-?/]?([1-2]([9]|[0])[0-9]{2})|(([0-2][0-9]|[3][0-1]|[0-9])?[-?/]?([0][1-9]|[1][0-2])[-?/]?([0-9]{2})))#ixm', $buffer, $out) !==0 && $c<=2) {
				
					$testExp=true;
					$c++;
					$xdeb = preg_replace('#/aà?#', '-', trim($out[0]));
					$buffer = str_replace($out[0], '', trim($buffer));
															
					if(preg_match('#(([0-2][0-9]|[3][0-1]|[0-9])?[-?/ ]?([0][1-9]|[1][0-2])?(:alpha:+)?[-?aà/ ]?([1-2]([9]|[0])[0-9]{2})|(([0-2][0-9]|[3][0-1]|[0-9])?[-?/]?([0][1-9]|[1][0-2])[-?/]?([0-9]{2})))#ixm', $buffer, $out) !==0 ) {
						
						$xfin = preg_replace('#(a|à)#', '', trim($out[0]));
						$xfin = preg_replace('#/aà?#', '-', trim($out[0]));
						$buffer = str_replace(trim($out[0]), '', trim($buffer));
						}else{
							if(preg_match('#((a|à)(\s)(ce)(\s)(jour))|(depuis)#i', $buffer, $out) || $c==1) {
								$xfin = Date('m').'-'.Date('Y');
								if(isset($out[0])) 
									$buffer = str_replace($out[0], '', trim($buffer));
									}else{
										$xfin=$exp[$c-1][1];
									}
						}
						$xfin=preg_replace('#^[-?.a:]#', '', $xfin);
						$exp[$c][1]=$xdeb;
						$exp[$c][2]=$xfin;
						
						while(preg_match('#([0-2][0-9]|[3][0-1]|[0-9])?[-?/ ]?([0][1-9]|[1][0-2])?(:alpha:+)?[-?aà/ ]?([1-2]([9]|[0])[0-9]{2})#ixm', $buffer, $out) == 0 && $k<=2 && $l===false ) {
							if(preg_match('#[A-Z]([[:alpha:]\']+[ ]?)+#i', $buffer, $out) !==0) {
								$poste[$k] = $out[0];
								$buffer = str_replace($out[0], '', trim($buffer));
								$k++;
								
							}
							
							if(preg_match('#[A-Z](:alpha:*[.\']?[ ]?[:]?[ ]?:alpha:+[.\']?[ ]?)+#', $buffer, $out) !==0) {
								$societe[$k] = $out[0];
								$buffer = str_replace($out[0], '', trim($buffer));
								$l=true;
							}else $l=true;
						}
						$l=false;
						
				}
			}
			if(isset($poste)){
			echo"<br>postes : ";
			print_r($poste);
			}
			if(isset($societe)){
			echo"<br>societe : ";
			print_r($societe);
			}
			if(isset($exp)){
			echo"<br>dates : ";
			print_r($exp);
			echo"<br>";
			}
		}
			
			$k=0;
			$l=false;
			
		if(preg_match('#(^[ ]?[F](ormation|ORMATION))|(^[D](iplome)[s]?|IPLOME[S]?)#', $buffer, $out) || preg_match('#DIPLOME#', $buffer, $out) && $testForm==false) {
			while((preg_match('#(langue[s]?)|((expérience[s]?|parcours)[ ](professionnel(le)?[s]?))|\b(divers)\b|(loisirs)|(informatique)|((langue)[s]?)#i', $buffer, $out) == 0) ) {
				
				if(feof($handle)) break;
				
				$buffer = fgets($handle, 4096);
				$buffer = preg_replace(array('#[|]#s','#^-#','#^?#','#^[(]#','#^[ ]#'), '', trim($buffer));
				$buffer = preg_replace('#([ ][ ]+)#s', ' ', trim($buffer));
				$buffer = accent($buffer);
								
				if(preg_match('#(([0-2][0-9]|[3][0-1]|[0-9])[-?/])?([0][1-9]|[1][0-2])?(:alpha:+)?[-?/a]?([1-2]([9]|[0])[0-9]{2})#ixm', $buffer, $out) !==0 && $d<=2) {
					$testForm=true;
					$d++;
					$fdeb = preg_replace('#/aà?#', '-', trim($out[0]));
					$buffer = str_replace($out[0], '', trim($buffer));
										
					if(preg_match('#([0-2][0-9]|[3][0-1]|[0-9])?[-?/ ]?([0][1-9]|[1][0-2])?(:alpha:+)?[-?aà/ ]?[1-2]([9]|[0])[0-9]{2}#ixm', $buffer, $out) !==0 ) {
						$ffin = preg_replace('#(a|à)#', '', trim($out[0]));
						$ffin = preg_replace('#/aà?#', '-', trim($out[0]));
						$buffer = preg_replace('#^[ ](a|à)[ ]#', '', $buffer);
						$buffer = str_replace(trim($out[0]), '', trim($buffer));
						}else{
							if(isset($out[0])) $buffer = str_replace($out[0], '', trim($buffer));
						}
							
					if(isset($ffin)) $ffin=preg_replace('#^[-?.a:]#', '', $ffin);
						$form[$d][1]=$fdeb;
						
						if(isset($ffin)) $form[$d][2]=$ffin;
						
						$fdeb="";
						unset($ffin);
							while(preg_match('#([0-2][0-9]|[3][0-1]|[0-9])?[-?/ ]?([0][1-9]|[1][0-2])?(:alpha:+)?[-?aà/ ]?([1-2]([9]|[0])[0-9]{2})#ixm', $buffer, $out) == 0 && $k<=2 && $l===false ) {
								if(preg_match('#([A-Z][.]?[[:alpha:]\']+[.]?[ ]?[:]?[ ]?[[:alpha:]\']+[.]?[ ]?)+#i', $buffer, $out) !==0) {
									$dipl[$k] = $out[0];
									$buffer = str_replace($out[0], '', trim($buffer));
									$k++;
								}
								if(preg_match('#[A-Z](:alpha:*[.\']?[ ]?[:]?[ ]?:alpha:+[.\']?[ ]?)+#', $buffer, $out) !==0) {
									$etab[$k] = $out[0];
									$buffer = str_replace($out[0], '', trim($buffer));
									$l=true;
									}else break;
							}
						$l=false;
				}
		}
		if(isset($dipl)) {
		echo"<br>diplomes : ";
		print_r($dipl);
		}else echo "<br>no diplomes found<br>";
		
		if(isset($etab)) {
		echo"<br>Etablissements : ";
		print_r($etab);
		}else echo "<br>no etablissement found<br>";
				
		if(isset($form)) {
		echo"<br>dates : ";
		print_r($form);
		}else echo "<br>no dates diplomes found<br>";
		}
		
		if(preg_match('#anglais|allemand|italien|espagnol|portugais|arabe|chinois#i', $buffer, $out)) { 
			$f++;
			$langue[$f]=$buffer;
			}
		
		if(preg_match('#([D](ivers|IVERS))\b#', $buffer, $out)) {
			while(preg_match('#.+#', $buffer, $out)==true){
				if(feof($handle)) break;
				$divers.="$buffer<br>";
				$buffer = fgets($handle, 4096);
			}
		}
	}
	if(isset($langue)){
		echo"langues : ";
		print_r($langue);
		echo"<br>";
	}
	
	if(isset($divers)) echo "<br>$divers";
	
	fclose($handle);
}

?>
<html>
<head><title>Formulaire CV
</title></head>

<body>
<br>

<form method="POST" action="test.php" name="formulaire" enctype="multipart/form-data"> 
<br>

<div class="block">
<h2><span>Envoyez votre CV</span></h2>
	<div class="box">
		<table>
		<tr><td>
<input type="file" name="fichier"> <br>
<input type="submit" name="valider"> <br>
		<tr><td>
		</table>
	</div>
</div>
</form>
</body></html>

Conclusion :


J'ai galere avec l'age et l'adresse mais c'est regle, ce sont les experiences et la formation qui ont ete les plus dures =)
Pour ceux que ca interesse le logiciel gratuit "antiword" pour la conversion de document word est porte sous windows, comme vous pouvez le voir il fonctionne en ligne de commande donc parfait a utiliser dans une page php.
Toute remarque sur la structure et la proprete du code est egalement bienvenue, plus particulierement la securite dans laquelle je n'y connais rien. Juste je vais mettre en place un systeme pour ne pas accepter des fichiers trop volumineux.
Voila j'espere en aider certains et recevoir des conseils.
++

A voir également

Ajouter un commentaire Commentaires
braxivamov
Messages postés
22
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
11 août 2009

16 mai 2007 à 08:50
Je suis desole avec l'indentation et la largeur du cadre le code est relativement lourd a lire ...
braxivamov
Messages postés
22
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
11 août 2009

9 mai 2007 à 08:43
Merci a vous deux vos conseils vont m'être très utiles. Juste une petite note je suis dans le dev de cette page donc pour les erreurs par exemple je fais des affichages et je n'arrete pas le code pour mieux voir ce qui se passe mais ce genre de choses comme la verification du nom de fichier je les fait apres ( c'est surement un defaut j'avoue ), comme j'ajouterais un controle sur la taille du fichier etc ...
DiGhan
Messages postés
239
Date d'inscription
samedi 21 février 2004
Statut
Membre
Dernière intervention
3 juin 2010
1
5 mai 2007 à 23:48
Hello,

pour l'adresse mail, il est préférable de tester si le 1er caractère est bien un caractère alphanum.
Si cette vérification n'est pas faite, ton masque matchera les adresses de ce type:_____@------.com.

Dans le masque suivant, il n'y a que les adresses classiques qui sont acceptés.

'#[a-z0-9]([-_.]?[a-z0-9])+@[a-z0-9]([-_.]?[a-z0-9])+\.[a-z]{3,5}#i'

Bonne chance.
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

4 mai 2007 à 17:18
@ KIKI2sirom... tu le dis toi même tu ne connais pas les regexp parce que tu ne les utilise pas... après effectivement j'ai peut être été vite à juger... la source peut valoir le niveau d'initié... bref... je n'ai pas le temps de regarder en détail mais une chose me fait bondir... il n'y a aucun contrôle du type de fichier uploadé qui plus est lors de la gestion des erreurs tu ne fais qu'afficher l'erreur tu ne shunte pas le reste du code ni n'arrête l'exécution du script ce qui peut être problématique voir dangereux... pareil au niveau de ton utilisation de exec(), je ne connais pas énormément l'exécution de commande via php mais une chose est sûr si tu ne fais aucun traitement sur le nom du fichier avant de l'inclure dans ta commande tu risque de tomber sur un petit malin qui fera exécuter à ton serveur des commandes arbitraires... .. .

un peu de lecture...

http://fr2.php.net/manual/fr/function.escapeshellarg.php
http://fr2.php.net/manual/fr/function.escapeshellcmd.php

Sinon coté syntaxe du peu que j'ai vu il serait bien d'utiliser les simples quotes et la concaténation plutôt que les doubles quotes... pour tes boucles for() à partir du moment où ton tableau ou ta chaine n'est pas modifié en cour de boucle fais ton sizeof ou ton count à l'initialisation de ta boucle... pas dans l'instruction de contrôle... et préfère également la préincrémentation pour la dernière instruction... exemple...

for ($i=0,$max=count($monTableau); $i<=$max; ++$i)

Les expressions régulières c'est bien... en abuser ça craint... .. .

$telPort = "#$telPort#s";
$buffer preg_replace("$telPort", " ", trim($buffer));
>

$buffer = str_replace($telPort, ' ', trim($buffer));

-------------

$buffer = preg_replace('#([[:space:]][[:space:]]+)#s', ' ', trim($buffer));
$buffer preg_replace('#[|]#s', ' ', trim($buffer));
>

$buffer = preg_replace(
array(
'#([[:space:]][[:space:]]+)#s',
'#[|]#s'
),
' ',
trim($buffer)
);

---------------------

$taille = sizeof($res);
$testN=true;
switch ($taille) {

tu ne réutilise $taille nul part en dehors du switch... inutile d'encombrer la mémoire serveur pour rien...

$testN=true;
switch (sizeof($res)) {

d'ailleurs utilise plutôt les fonctions originale plutôt que leur alias... tu y gagne en rapidité et tu est plus sur de la compatibilité de ton code vis a vis des futures versions de php... donc...

$testN=true;
switch (count($res)) {

utilise des comparaisons typées... tu y gagne en perf et tu est sur du contenu de ta variable...

while (!feof($handle))

===>

while (feof($handle) === false)

-----

if($handle fopen("temp.txt", "rb")) {
>

if(false !($handle fopen('temp.txt', 'rb'))) {

---

if(preg_match('#...#',$buffer,$out) && $testC false) {
>

if(preg_match('#...#',$buffer,$out) !0 && $testC false) {

Voili voilou dans un premier temps... .. .

@ tchaOo°
braxivamov
Messages postés
22
Date d'inscription
mercredi 10 janvier 2007
Statut
Membre
Dernière intervention
11 août 2009

4 mai 2007 à 14:44
Je suis egalement d'accord avec toi, certaines pcre utilisees ici ne sont - a mon humble avis - pas realisablent par un debutant. Mais en tant que nouveau sur le site je me rallie a l'avis d'un "ancien".
A part ca si vous pouviez me faire des suggestions qui me ferait avancer dans l'amelioration de mon code (structure, construction des regexp, proprete (surtout le passage $j=3 du code postal) ) ce serait top ^^
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.