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
merci
Anne