Re: problème avec php

Page principale

Répondre à ce message
Auteur: anne.guilde@free.fr
Date:  
À: guilde
Sujet: Re: problème avec php
Le 15/12/2019 à 02:25, anne.guilde@??? a écrit :
> Le 12/12/2019 à 13:52, anne.guilde@??? a écrit :
>> Le 12/12/2019 à 12:20, Marc BERLIOUX a écrit :
>>> Le 12/12/2019 à 11:58, anne.guilde@??? a écrit :
>>>> ...
>>>> Si quelqu'un a le courage de tester...
>>>
>>> Non merci. ;o)
>>>
>>> Par contre, puisque tu as semble-t-il des problèmes avec les guillemets,
>>> tu peux les enlever, par exemple en tapant :
>>> cat fichier.vcf | tr -d '"' > new_fichier.vcf
>>>
>>
>> Je viens de tester.
>> Cela fonctionne sur mon ficher de test
>>
>
> Je récupère le fichier vcf et je fais :
> cat fichier.vcf | tr -d '"' > new_fichier.vcf
>
> Problème suivant: pas de numéro de fax récupéré
>
> la partie du script :
> ---
>     /**
>      * Helper method to parse an phone number node
>      *
>      * @access private
>      */
>     function parse_tel(&$node, &$vcard)
>     {
>         foreach($node as $tel)
>         {
>             if (in_array_nc("PAGER", $tel['param']['TYPE']))
>                 $vcard->pager = $tel['value'][0][0];
>             else if (in_array_nc("CELL", $tel['param']['TYPE']))
>                 $vcard->mobile = $tel['value'][0][0];
>             else if (in_array_nc("HOME", $tel['param']['TYPE']) ||
> in_array_nc("PREF", $tel['param']['TYPE']))
>             {
>                 if (in_array_nc("FAX", $tel['param']['TYPE']))
>                     $vcard->home['fax'] = $tel['value'][0][0];
>                 else
>                     $vcard->home['phone'] = $tel['value'][0][0];
>             }
>             else if (in_array_nc("WORK", $tel['param']['TYPE']))
>             {
>                 if(in_array_nc("FAX", $tel['param']['TYPE']))
>                     $vcard->work['fax'] = $tel['value'][0][0];
>                 else
>                     $vcard->work['phone'] = $tel['value'][0][0];
>             }
>             else if (in_array_nc("VOICE", $tel['param']['TYPE']))
>             {
>                 if (!isset($vcard->home['phone']))
>                     $vcard->home['phone'] = $tel['value'][0][0];
>                 else if (!isset($vcard->work['phone']))
>                     $vcard->work['phone'] = $tel['value'][0][0];
>                 else if (!isset($vcard->mobile))
>                     $vcard->mobile = $tel['value'][0][0];
>             }
>
>             if (in_array_nc("FAX", $tel['param']['TYPE']))
>                 $vcard->fax = $tel['value'][0][0];
>         }
>     }
> ------
>
> in_array_nc, pas trouvé sur le net
> in_array oui mais le nc?
>
> J'aimerais comprendre comment fonctionne cette ligne du script par
> exemple :
>
> in_array_nc("FAX", $tel['param']['TYPE']))
>
> C'est pour qu'il soit pas obligé de respecter la casse?
>
> in-array : il recherche le mot du premier argument dans n'importe quel
> poste du tableau?
>
> Si quelqu'un veut tester
>
> le programme
> https://github.com/thomascube/vcfconvert
> Il y a plusieurs php, c'est vcard_convert.php qui transforme le vcf et cvs.
>
> le fichier de test
> https://pastebin.com/4QdAwyE5
>


Ne cherchez pas.
Si work et fax : récupéré et enregistré avec sortie en csv
Si home et fax : récupéré et enregistré avec sortie en csv
Si fax tout seul : récupéré mais pas enregistré avec sortie en csv

C'est un peu plus loin dans le pgm php quand il enregistre

Anne