Extraction de caractères d'un fichier texte

Eléphanteau du PHP | 12 Messages

26 mai 2010, 16:23

Bonjour et merci d'avance pour votre aide.

Pour ma culture perso et pour mon enrechissement toujours perso je cherche à faire un petit script .

j'ai un fichier de 10 lignes comme tel.

--------------------------------------------------------------------------------------
"nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected]; "nom prenom" <[email protected]>, <[email protected]>, "nom prenom" <[email protected]>; <[email protected]>; [email protected], [email protected];
---------------------------------------------------------------------------------------

J'essaye deseperement à l'aide des expressions régulieres comme ereg - explode de lire le fichier et d'extraire les adresses mails pour les mettre dans un nouveau fichier sous la forme :

[email protected];
[email protected];
[email protected];
[email protected];
[email protected];
[email protected];
[email protected];
[email protected];
[email protected];
[email protected];

Donc en ne gardant que les adresses mails.

Mais voilà mon souci je suis un bleu en php et je rame je rame :shock: :shock:

je cherche à faire un petit script qui lise le texte et qui m'extrait les adresses mail.
Mais l'homme (surtout moi :oops: ) à des limites.

Merci d'avance

ViPHP
ViPHP | 5462 Messages

26 mai 2010, 16:35

t'arrive pas avec un regexp ?

Eléphanteau du PHP | 12 Messages

26 mai 2010, 16:39

Non, je dois ###### dans mon script car je recupere le même fichier que l'original.

Si qql1 à une idée ou un debut de script je suis preneur.

Merci d'avance

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 mai 2010, 16:42

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 mai 2010, 16:44

Une fois cela dit : que veux tu faire ?

Split sur la virgule, puis ôter les chevrons, non ?
Tu peux utiliser la commande split() sur la chaîne (avec file_get_contents() pour récup le fichier) ou la commande file() sur ton fichier pour tout mettre dans un tableau.
A ta convenance.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
ViPHP | 5462 Messages

26 mai 2010, 16:44

Non, je dois ###### dans mon script car je recupere le même fichier que l'original.

Si qql1 à une idée ou un debut de script je suis preneur.

Merci d'avance

trouve le regexp de l'email apres ca se fera tout seul :wink:

Eléphanteau du PHP | 12 Messages

26 mai 2010, 16:55

Merci pour ta réponse

j'ai déjà le regexp de l'email mais je n'ai pas le savoir (surtout en php) d'extraire la variable (le regexp de l'email) du texte.

Merci pour ta dispo.

ViPHP
ViPHP | 5462 Messages

26 mai 2010, 16:57


Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

26 mai 2010, 16:57

Tu dois le faire une fois ou dans un script que tu rejoueras ?
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 12 Messages

26 mai 2010, 17:01

Merci pour ta réponse

j'ai un formulaire ou je rentre tout le texte en brut et après un TEXTAREA qui m'affiche toutes les adresses email les unes sous les autres.

Cdlt

Eléphanteau du PHP | 12 Messages

27 mai 2010, 10:54

Re bonjour,

J'ai fait un ch'ti script :shock:
<?
if ($_POST) 
{
	$texte=$description_source;
	$texte=str_replace(" ", "", $texte);
	$texte=str_replace(",", ";\n", $texte);
	$texte=str_replace("\'", ";\n", $texte);
	$texte=str_replace('\"', ";\n", $texte);
	$texte=str_replace('\\', ";\n", $texte);
	$texte=str_replace("<br />", "\n", $texte);
	$texte=ereg_replace("(<|>|\;\,)", ";\n", $texte);
	$texte=str_replace(';;', ";\n", $texte);
    //$description=nl2br($texte); 
	$description=$texte; 
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
?>
<TABLE cellSpacing=0 cellPadding=0 width="770" border="0" align="center">
	<FORM enctype="multipart/form-data" name="formulaire" action="test.php" method="post">
	<TR valign="top">
		<TD align="right">
			<DIV >description source*</DIV>
		</TD>
		<TD colspan="2">
		<br>
			<TEXTAREA  id="description_source" name="description_source" rows="19" cols="100"><? echo $description_source ?></TEXTAREA>
		</TD>
	</TR>
	<TR valign="top">
		<TD align="right">
			<DIV >description finale</DIV>
		</TD>
		<TD colspan="2">
		<br>
			<TEXTAREA id="description" name="description" rows="19" cols="100"><? echo $description ?></TEXTAREA>
		</TD>
	</TR>
	<TR>
		<TD colspan="3" align="center">
		<br>
			<INPUT  type="submit" value="Go!" name="submit" >
		</TD>
	</TR>
	</FORM>
</TABLE>
Mais j'ai un problème lorsque je rentre le fichier texte ds le post.
je veux comme résultat
mais j'obtiens
Comment puis je modifier mon script pour avoir le résultat escompté.

Merci d'avance

ViPHP
ViPHP | 5462 Messages

27 mai 2010, 11:01

tu remplaces les ', ' par ";\n"

Eléphanteau du PHP | 12 Messages

27 mai 2010, 11:07

Merci
mais je suis obligé de modifier les , par des ;\n car j'ai des , a la fin de certaines adresses.
Moi je veux a la fin retirer tous les ; et les lignes vides pour ne garder que la structure finale
merci pour votre aide

ViPHP
ViPHP | 5462 Messages

27 mai 2010, 11:12

trouve le regexp de l'email et ca sera plus simple...

Eléphanteau du PHP | 12 Messages

27 mai 2010, 13:57

Re,

Je n'arrive pas à inserer le regexp à mon script

$regexp = "^([_a-z0-9-] )([\. ][_a-z0-9-] )*@([a-z0-9-] )(\.[a-z0-9-] )*(\.[a-z]{2,4})$";

y a t il une ame charitable 8-| 8-|

merci d'avance