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