Yealink remote_book

Скрипты PHP, PERL и т.п. помогающие управлять сетью

Yealink remote_book

Сообщение dimondack » 16 авг 2018, 16:30

Всем привет
Вот написал скрипт для создания телефонной книги для телефона Yealink
Свой вариант. так сказать.

На входе пока только csv.
Код: Выделить всё
<?php

//require_once __DIR__ .'/simplexlsx.class.php';
//include(simplexslx.class.php);

$frem  = fopen('manybook.xml','w+');
$fknt = fopen('kontakts_org8.csv','r');
//$f_xl = fopen('kontakts_org.xlsx','r');



$cnt_arr=0;
$nicoom_name[0]="";
$unicoom_name[0]="";
$str_name[0]="";
if(!$frem){echo "Error open file";}

while(!feof($fknt)){
$s = fgets($fknt,1024);
if(strlen($s)==0){continue;}
$s = trim($s,"\n\r");
$arr = explode(";",$s);
$nicoom_name[$cnt_arr]=$arr[4];
$str_name[$cnt_arr]=$s;
$cnt_arr=$cnt_arr + 1;
}
/////////////////////////////////////////
$c = 0;
for($k = 0; $k<$cnt_arr; $k++){
$temp_name = $nicoom_name[$k];
$ind =0;
//foreach($nicoom_name as $a){
for($ml = $k; $ml<$cnt_arr; $ml++){
//echo $a."\n";
if($temp_name == $nicoom_name[$ml] ){

//$ind = $ind + 1;
$iind =0;
foreach($unicoom_name as $u){if($u == $temp_name){$iind = $iind +1;} }
if($iind == 0){$unicoom_name[$c] = $temp_name; $c = $c + 1;}
                        break;      }
}

}   
////////////////////////////////////////

//////////////////
foreach($unicoom_name as $tu){echo $tu."\n"; }
//////////////////


$head = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<YealinkIPPhoneBook>
  <Title>Yealink</Title>"."\n";

$wh = fwrite($frem,$head);




foreach($unicoom_name as $tu){//echo $tu."\n";

$head = "<Menu Name=\"$tu\">\n";
$wh = fwrite($frem,$head);

$str_c = 0;
for($k = 0; $k<$cnt_arr; $k++){
if(strlen($str_name[$k])==0){continue;}

$arr = explode(";",$str_name[$k]);
if($arr[4] != $tu){continue;}

$bos = "<Unit Name=\"$arr[0]\" Phone1=\"$arr[1]\" Phone2=\"$arr[2]\" Phone3=\"$arr[3]\" default_photo=\"Resource:\"/>";
$bos="\t".$bos."\n";
$tw = fwrite($frem,$bos);

echo $s;
}

$fu =  "</Menu>"."\n";
$tw = fwrite($frem,$fu);
}




$fu =  "</YealinkIPPhoneBook>"."\n";
$tw = fwrite($frem,$fu);

fclose($fknt);
fclose($frem);
?>



Вот с этим повозился немного

На входе массив $nicoom_name[] с городами и они могут повторяться.
А нужен был массив с городами без повторений.

Код: Выделить всё
$c = 0;
for($k = 0; $k<$cnt_arr; $k++){
$temp_name = $nicoom_name[$k];
$ind =0;
//foreach($nicoom_name as $a){
for($ml = $k; $ml<$cnt_arr; $ml++){
//echo $a."\n";
if($temp_name == $nicoom_name[$ml] ){

//$ind = $ind + 1;
$iind =0;
foreach($unicoom_name as $u){if($u == $temp_name){$iind = $iind +1;} }
if($iind == 0){$unicoom_name[$c] = $temp_name; $c = $c + 1;}
                        break;      }
}

}   




И вот он $unicoom_name[$c]


Да, книгу ещё не загружал на сервер вообщем не проверял.
Просто хотел скрипт показать...
Вложения
Yealink.zip
Yealink
(2.38 Кб) Скачиваний: 2100
Нас определяет то, что мы делаем.
Аватара пользователя
dimondack
посетитель
 
Сообщения: 104
Зарегистрирован: 21 янв 2015, 13:00

Вернуться в Программинг и сети

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0