Auteur: anne.guilde@free.fr Date: À: guilde Sujet: Re: Problème pour insérer une commande bash dans un script php
Le 27/12/2019 à 20:19, Dominique Fournier a écrit : > Bonjour Anne
>
> str_replace ('"', "", $vcf)
> ne suffirait pas ?
>
> Dom
>
Où mettre cette ligne?
Anne
> Le 27/12/2019 à 20:16, anne.guilde@??? a écrit :
>> bonjour,
>>
>> Quand je récupère un fichier vcf à partir de nextcloud j'ai un
>> problème avec les "
>>
>> TEL;TYPE="HOME,VOICE":12345678
>>
>> Le numéro n'est pas récupéré à cause des "
>>
>> La solution trouvée grâce à Marc
>>
>> cat fichier.vcf | tr -d '"' > new_fichier.vcf
>>
>> J'aimerais inclure cette commande dans le php
>>
>> https://github.com/thomascube/vcfconvert >>
>> les fichiers :
>>
>> -rw-rw-r-- 1 admin shared 26008 26 févr. 2019 Contact_Vcard_Parse.php
>> -rw-rw-r-- 1 admin shared 5617 27 déc. 02:49 index.php
>> -rw-rw-r-- 1 admin shared 7300 27 déc. 02:47 page.html
>> -rw-rw-r-- 1 admin shared 2129 26 févr. 2019 README.md
>> drwxrwsr-x 2 admin shared 4096 11 déc. 23:08 tmp
>> -rw-rw-r-- 1 admin shared 1259 26 févr. 2019 utils.php
>> -rw-rw-r-- 1 admin shared 35687 27 déc. 01:04 vcard_convert.php
>> -rw-rw-r-- 1 admin shared 5487 26 févr. 2019 vcf2csv_logo.jpg
>> -rw-rw-r-- 1 admin shared 3675 26 févr. 2019 vcfconvert.sh
>>
>>
>> # ./vcfconvert.sh help
>> Usage: convert [-hilmpv] [-d delimiter] [-b identifier] [-o
>> output_file] -f format file
>> -f Target format (ldif,ldap,csv,gmail,libdlusb)
>> -b LDAP identifier added to dn:
>> -l Generate just a list of DN objects (only works with -b)
>> -o Output file (write to stdout by default)
>> -d CSV col delimiter
>> -h Include header line in CSV output
>> -i Convert CSV output to ISO-8859-1 encoding
>> -m Only convert cards with an e-mail address
>> -p Only convert cards with phone numbers
>> -v Verbose output
>>
>> Pas essayé : en ligne de commande.
>>
>> J'ai mis les php sur mon serveur.
>>
>> J'ai modifié index.php et page.html pour inclure les 2 modifications
>> que j'ai fait.
>>
>> index.php
>> ...
>> $conv = new vcard_convert(array(
>> 'mailonly' => !empty($_POST['_mailonly']),
>> 'phoneonly' => !empty($_POST['_phoneonly']),
>> 'accesscode' => preg_replace('/[^1-9]/', '',
>> $_POST['_accesscode']),
>> 'mobilephone' => !empty($_POST['_mobilephone']), <=
>> ajouté
>> 'nextcloudvcf' => !empty($_POST['_nextcloudvcf']), <=
>> ajouté
>> ));
>> ...
>>
>> mobilephone C'est pour savoir si le fichier vient du smartphone ou de
>> nextcloud
>> Je m'en sers pour la catégorie des vcard.
>>
>> nextcloudvcf c'est pour modifier les " des vcard quand le vcf vient de
>> nextcloud.
>> Je pense que cela fait double emploi. Je vais certainement l'enlever.
>>
>> page.html
>> ...
>> <td class="cell label">Groupe Mobile phone:</td>
>> <td class="cell">
>> <input type="checkbox" name="_mobilephone" id="checkmobilephone"
>> value="1"><label for="checkmobilephone"> vCards with mobile phone
>> (group)</label>
>> </td>
>>
>> </tr><tr>
>>
>> <td class="cell label">Nexctcloud VCF:</td>
>> <td class="cell">
>> <input type="checkbox" name="_nextcloudvcf" id="checknextcloudvcf"
>> value="1"><label for="checknextcloudvcf"> vCards with nextcloud
>> vcf</label>
>> </td>
>>
>> </tr><tr>
>> ...
>>
>> C'est la page html qui s'affiche à l'écran.
>>
>>
>> vcard_convert.php
>> ...
>> function normalize()
>>
>> - avant
>> $vcard->categories = join(',',
>> (array)$card['CATEGORIES'][0]['value'][0]);
>>
>> - après
>> if ($this->mobilephone)
>> {
>> $vcard->categories = join(',',
>> (array)$card['X-GROUP-MEMBERSHIP'][0]['value'][0]);
>> } else
>> {
>> $vcard->categories = join(',',
>> (array)$card['CATEGORIES'][0]['value'][0]);
>> }
>> ...
>>
>> J'ai ajouté le test pour savoir si le fichier vient du smartphone ou non
>>
>> La catégorie avec le vcard qui vient de nextcloud c'est : CATEGORIES
>> exemple : CATEGORIES:Family
>> La catégorie avec le vcard qui vient du smartphone c'est :
>> X-GROUP-MEMBERSHIP
>> exemple : X-GROUP-MEMBERSHIP:Family
>>
>> Pour cela c'est ok. Cela fonctionne, j'ai trouvé ce qu'il faut modifier.
>> Je pense avoir modifié correctement.
>>
>> -------------------
>>
>> Quand le vcf vient de Nextcloud, pour l'instant je fais cette commande
>> cat fichier.vcf | tr -d '"' > new_fichier.vcf
>> C'est pour enlever les " de, par exemple,
>> TEL;TYPE="HOME,VOICE":12345678 qui vient du vcf de nextcloud.
>> (Merci à Marc)
>>
>> J'aimerais bien inclure cela dans le programme vcfconvert
>>
>> C'est dans le pgm vcard_convert.php
>> ...
>> function normalize()
>>
>> // extract phones
>> if (is_array($card['TEL']))
>> $this->parse_tel($card['TEL'], $vcard);
>> ...
>> /**
>> * Helper method to parse an phone number node
>> *
>> * @access private
>> */
>> function parse_tel(&$node, &$vcard)
>> ...
>>
>> C'est peut-être dans un autre pgm php que je pourrais inclure la modif.
>>
>> Si quelqu'un a du courage pour jeter avec un ou 2 yeux ...
>>
>> Merci
>> Anne
>>
>