Re: problème avec php

Top Page

Reply to this message
Author: anne.guilde@free.fr
Date:  
To: guilde
Subject: Re: problème avec php
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