Bonjour a tous,
Je n'arrive pas a écrire es données trouvé à a suite sur a même ligne mais dans une autre collone du csv envoyé
<?php
//Ectraction des email et tel d'un csv
function extractEmails($d)
{
if(false !== preg_match_all('`\w(?:[-_.]?\w)*@\w(?:[-_.]?\w)*\.(?:[a-z]{2,4})`', $d, $aEmails))
{
if(is_array($aEmails[0]) && sizeof($aEmails[0])>0)
{
return array_unique($aEmails[0]);
}
}
return null;
}
function extractTel($d)
{
if(false !== preg_match_all('/\d{10}|\+33\d{9}|\+33\s\d{1}\s\d{2}\s\d{2}\s\d{2}\s\d{2}|\d{2}\s\d{2}\s\d{2}\s\d{2}\s\d{2}|0\d(?:\.\d{2}){4}|0\d(?:-\d{2}){4}/', $d, $aTel))
{
if(is_array($aTel[0]) && sizeof($aTel[0])>0)
{
return array_unique($aTel[0]);
}
}
return null;
}
if(!empty($_POST))
{
$csvFileToLoad = $_FILES["file"]["tmp_name"]; //
$isSavingToDB = false;
//ouvrir le fichier temporaire en lecture
if(($readCSVFile = fopen("{$csvFileToLoad}", "r+")) != false)
{
while(!feof($readCSVFile) && ($data = fgetcsv($readCSVFile)) !== false)
{
foreach($data as $d)
{
/**
* Exemple d'utilisation
*/
$aEmails = extractEmails($d);//extraction des emails du csv
$aTel = extractTel($d);
// header("Content-Type: text/csv");
// header("Content-Disposition: attachment; filename=file.csv");
//print_r($aEmails);
// var_dump($aEmails);
// var_dump($aTel);
$a = json_encode($aEmails);
$b =json_encode($aTel);
// Retire ["
$Cherche_dans_cette_variable = $a ;
$Trouve_ceci = '["';
$remplace_Trouve_ceci_par_ceci = "";
$a= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire "]
$Cherche_dans_cette_variable = $a ;
$Trouve_ceci = '"]';
$remplace_Trouve_ceci_par_ceci = "";
$a= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire [" du tel
$Cherche_dans_cette_variable = $b ;
$Trouve_ceci = '["';
$remplace_Trouve_ceci_par_ceci = "";
$b= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire "] du tel
$Cherche_dans_cette_variable = $b ;
$Trouve_ceci = '"]';
$remplace_Trouve_ceci_par_ceci = "";
$b= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire les espaces du tel
$Cherche_dans_cette_variable = $b ;
$Trouve_ceci = ' ';
$remplace_Trouve_ceci_par_ceci = "";
$b= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire . du tel
$Cherche_dans_cette_variable = $b ;
$Trouve_ceci = '.';
$remplace_Trouve_ceci_par_ceci = "";
$b= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
$conteur = strlen($b);
if(empty($aTel))
{
$aTel="";
$b = "";
}
else
{
$conteur = strlen($b);
if($conteur<10)
{//si le retour est moins de 10 c'est qu'il manque le 0, alors attribution du 0
$b = "0".$b;
}
}
if(empty($aEmails))
{
$aEmails = "";
$a ="";
}
if(empty($aEmails)&&empty($aTel))
{
$d="";
$a ="";
}
//Si ce n'est pas vide l'un ou l'autre
if(!empty($aEmails) OR !empty($aTel))
{
// $listee = array (array($d, $a, $b));
$listee = array (array($a, $b));
$ligne =json_encode($listee);
// Retire [[" du tel
$Cherche_dans_cette_variable = $ligne ;
$Trouve_ceci = '[["';
$remplace_Trouve_ceci_par_ceci = "";
$ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire "]] du tel
$Cherche_dans_cette_variable = $ligne ;
$Trouve_ceci = ']]';
$remplace_Trouve_ceci_par_ceci = ";";
$ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire "]] du tel
// $Cherche_dans_cette_variable = $ligne ;
// $Trouve_ceci = '\n';
// $remplace_Trouve_ceci_par_ceci = " ";
// $ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire "]] du tel
// $Cherche_dans_cette_variable = $ligne ;
// $Trouve_ceci = '\u00e9';
// $remplace_Trouve_ceci_par_ceci = "é";
// $ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire " du tel
// $Cherche_dans_cette_variable = $ligne ;
// $Trouve_ceci = '"';
// $remplace_Trouve_ceci_par_ceci = "";
// $ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire \ du tel
$Cherche_dans_cette_variable = $ligne ;
$Trouve_ceci = '\/';
$remplace_Trouve_ceci_par_ceci = "/";
$ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// Retire " du tel
// $Cherche_dans_cette_variable = $ligne ;
// $Trouve_ceci = '"';
// $remplace_Trouve_ceci_par_ceci = "";
// $ligne= str_replace($Trouve_ceci, $remplace_Trouve_ceci_par_ceci, $Cherche_dans_cette_variable);
// header("Content-Type: text/csv");
// header("Content-Disposition: attachment; filename=Fichier.csv");
// $list = array(array($ligne));
}else{ }
}
}
// var_dump($ligne);
// $fp = fopen('file.csv', 'w');
// foreach ($list as $fields)
// {
// fputcsv($fp, $fields,";");
// }
}
// fclose($fp);
// exit('<a href ="file.csv">Récupération de mon fichier</a>');
}
if(!empty($ligne)){
$list = array($ligne);
header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=Fichier.csv");
print($list);
exit();
}
?>
<form enctype="multipart/form-data" action="" method="post">
<label class="col-md-2 control-label">extraire les email et tel</label>
<input type="file" name="file" id="file" accept=".csv">
<button type="submit" id="submit" name="import" class="btn btn-info">lancer</button>
</form>
Ce que je veux
Je cherche à isoler l'email et le tel trouver dans un cellule et le réécrire sur la meme ligne dans une autre cellule
exemple dans la cellul A1 j'ai
coucou tu peux me contacter sur le 06000000 ou par email sur mon@email.com
je voudrais obtenir ceci
A1 =coucou tu peux me contacter sur le 06000000 ou par email sur mon@email.com
A2 = 06000000
A3 = mon@email.com
Ce que j'obtiens
Ectuellement j'ai bien les données isolée, mais seulement la première ligne se réécrit correctement, hors j'aimerais que toutes les données soient réécrites..