Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env php
- <?php
- // Google Contacts csv to ldif (LDAP) converter
- // Credits pc_magas, George Rousopoulos
- // You can transform greek to greeklish csv here https://www.datagen.gr/index.php?option=scripts&script=greek_to_greeklish
- // Input CSV
- $csv_file="contacts.csv";
- // Output file
- $ldap="contacts.ldif";
- /**
- * ###################### Do not edit ellow this line ##################
- */
- $ldapHandler=fopen($ldap,"w");
- $csv_file_handler=fopen($csv_file,"r");
- $recordHeader=",ou=Users,dc=mydomain,dc=gr".PHP_EOL."objectclass: inetOrgPerson".PHP_EOL;
- $firstLineSkip=true;
- if (($csv_file_handler=fopen($csv_file,"r")) !== FALSE) {
- while (($data = fgetcsv($csv_file_handler, 1000, ",")) !== FALSE) {
- if($firstLineSkip) {
- $firstLineSkip=false;
- continue;
- }
- $uniqid=uniqid();
- $mail=trim($data[30]);
- $cn=trim($data[0]);
- $sn=trim($data[3]);
- $givenName=$data[1];
- $mobile=str_replace(' ','',$data[37]);
- $mobile=str_replace('+30','',$mobile);
- $mobile=str_replace('+','00',$mobile);
- $phone=str_replace(' ','',$data[39]);
- $phone=str_replace('+30','',$phone);
- $phone=str_replace('+','00',$phone);
- $record='dn: uid='.$uniqid.''.$recordHeader;
- $record.='cn: '.$cn.PHP_EOL;
- $record.='sn: '.$cn.PHP_EOL;
- $record.='givenName: '.$cn.PHP_EOL;
- if (!empty($mail)) {
- $record.='mail: '.$mail.PHP_EOL;
- }
- if (!empty($mobile)) {
- $record.='mobile: '.$mobile.PHP_EOL;
- }
- if (!empty($phone)) {
- $record.='telephoneNumber: '.$phone.PHP_EOL;
- }
- $record.='uid: '.$uniqid.PHP_EOL;
- fwrite($ldapHandler,$record.PHP_EOL.PHP_EOL);
- }
- }
- fclose($ldapHandler);
- fclose($csv_file_handler);