Re: awk et php

Top Page

Reply to this message
Author: anne.guilde@free.fr
Date:  
To: guilde
Subject: Re: awk et php
Le 01/02/2020 à 11:32, Jérôme Villafruela a écrit :
> Le 01/02/2020 à 02:40, anne.guilde@??? a écrit :
>> bonjour,
> Bonjour Anne,
>>
>> en bash, je fais la commande
>>
>> $ fichier=contacts.csv; categorie=`awk -F \; ' {print  $37} ' <
>> $fichier | uniq` ; echo "$categorie"
>> Categories
>> Family
>> Friends
>> My Contacts
>> My Contacts1
>> test
>>
>> J'aimerais faire la même chose en php et que cela atterrisse dans un
>> tableau.
>>
>>
> Utilise la fonction php fgetcsv pour lire le fichier, exemple :
> https://gist.github.com/JVillafruela/876a23894464590fb8a63ecf6985ec9a
>


oui, j'ai relu le fichier.

J'ai fait une fonction pour récupérer les différentes catégories du fichier
---
// Récupère les différentes catégories dans un tableau

function checkCategorie($filename_csv, $delimiter1)

{



    $lines_csv = file($filename_csv);




    $length = count($lines_csv);




# récupération de la catégorie de chaque ligne

    for($i = 0;$i < $length;$i++)


    {


        if($i == 0)


        {


            $keys_csv = $lines_csv[$i];


            $keys_csv = explode($delimiter1,$keys_csv);


            $keys_csv[36] = rtrim($keys_csv[36]);  // on enlève les blancs en fin 
du dernier poste de chaque ligne


        }


        else


        {




            $values_csv = $lines_csv[$i];


            $values_csv = explode($delimiter1,$values_csv);


            $values_csv[36] = rtrim($values_csv[36]);  // on enlève les blancs en 
fin du dernier poste de chaque ligne




            // Categories


            $position = findPos("Categories", $keys_csv);


            $categ = $values_csv[$position];




            $line[] = $values_csv[$position];


        }


    }




# récupération des différentes catégories qui se trouve dans le fichier

    $cat = array_unique($line);




     return $cat;


}
---

l'appel de la fonction et le form pour faire un select multiple

---
    $fich_tmp = $_FILES["file"]["tmp_name"];



# récupération des différentes catégories du fichier

    $categorie = checkCategorie($fich_tmp,$delimiter);




    echo '<form method="post" enctype="multipart/form-data">


    <input type="hidden" name="$_FILES["file"]["name"]" value="'.$nomFich.'" >


    <input type="hidden" name="$_delimiter" value="'.$delimiter.'" >


    <input type="hidden" name="$_telfixe" value="'.$telfixe.'" >


    Catégorie :


    <select name = "$_categorie[]" multiple size = 6> ';


                            foreach($categorie  as $select_cat){


    echo '<option value = "'.$select_cat.'" > '.$select_cat.' </option>';


                            }


          echo '</select>


                    

    <input type="submit" name="convert" value="convert" style="width: 100%;">


    <input type="submit" name="retour" value="retour" style="width: 100%;"> 

                        

    </form>';
---


Cela fonctionne.

Il y a encore une chose qui ne fonctionne pas

C'est l'appel de convert ici.
Cela ne me met pas le téléchargement du fichier

J'ai mis le php ici.
https://pastebin.com/mVrmhAuL

Je n'arrive pas à comprendre comment fonctionne ce téléchargement.

J'ai remis le submit convert sur la première page.
Quand je fais 'convert' sur la première fenêtre, le téléchargement du
fichier s'affiche.

J'ai ajouté une deuxième fenêtre pour pouvoir sélectionner la catégorie
du fichier donné dans la première fenêtre et là plus de téléchargement
possible. Il m'affiche la fin de la fenêtre. (la fonction finentete(); )

Pas tout à fait compris comment cela fonctionne...

Anne