Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function create_tree($user,$pass){
- $connection=ldap_connect('10.0.1.253','389');
- ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, 3);
- if($connection){
- $bind = ldap_bind($connection, $user, $pass);
- $read=ldap_search($connection,"ou=Nuestra_Capital,dc=local,dc=com,dc=mx","(ou=*)") or exit("Create tree function unable to search!");
- $info=ldap_get_entries($connection,$read);
- $tree=array();
- for($i=0;$i<$info['count'];$i++){
- $parent=explode(',',$info[$i]['dn']);
- if(count($parent)==5){
- //headers
- $nam=explode("=",$parent[0]);
- $tree[$nam[1]]='';
- echo "im a head: ".$nam[1].'<br/>';
- }else{
- //$tree[$nam[1]][]=$info[$i]['dn'];
- $k=count($parent)-4;
- do{
- $child=explode('=',$parent[$k]);
- if($child[1]!='Nuestra_Capital'){
- echo "child: ".$child[1]."<br/>";
- if(array_key_exists($child[1],$tree)){
- $ex=explode(",",$info[$i]['dn']);
- $res=(count($ex)-1)-$k;
- $tot=((count($ex)-1)-$res);
- $str=explode("=",$ex[$tot-$k]);
- $father=explode("=",$ex[($tot-$k)+1]);
- echo "original : ".$info[$i]['dn'].'<br/>';
- echo "parsed ".$k." : ".$child[1].'<br/>';
- echo "key exists: ".$child[1].'<br/><br/>';
- //echo "value to be added: ".$str[1].' ?</br>';
- //echo "father : ".$father[1].' ? <br/>';
- echo '$tree['.$child[1].'][]='.$str[1].'<br/>';
- //$tree[$child[1]][]=$str[1];
- if(!array_key_exists($father[1],$tree)){
- echo '$tree['.$child[1].']['.$father[1].']='.$str[1].'<br/>';
- $tree[$child[1]][$father[1]][]=$str[1];
- }else{
- echo '$tree['.$child[1].']['.$str[1].']=""<br/>';
- $tree[$child[1]][]=$str[1];
- }
- break;
- }else{
- //echo "original: ".$info[$i]['dn'].'<br/>';
- echo "parsed ".$k.": ".$child[1].'<br/><br/><br/>';
- echo '$tree['.$child[1].']=""<br/>';
- $tree[$child[1]]='';
- }
- }
- $k--;
- }while($k>=0);
- }
- }
- }
- ldap_close($connection);
- echo "==================== Array =====================<br/><pre>";
- echo var_dump($tree);
- echo "</pre>";
- //return $tree;
- }
- Output :
- im a head: IT_Admins
- im a head: Grupos
- im a head: usuarios_Generales
- im a head: Presidencia
- im a head: Sindicatura
- im a head: Direccion_de_administracion
- child: Direccion_de_administracion
- original : OU=Informatica,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Informatica
- $tree[Direccion_de_administracion][Informatica]=""
- child: Direccion_de_administracion
- original : OU=DEPARTAMENTO_DE_ADQUISICIONES,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=DEPARTAMENTO_DE_ADQUISICIONES
- $tree[Direccion_de_administracion][DEPARTAMENTO_DE_ADQUISICIONES]=""
- im a head: Tesoreria
- child: Tesoreria
- original : OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Egresos
- $tree[Tesoreria][Direccion_de_Egresos]=""
- child: Tesoreria
- original : OU=Direccion_de_Ingresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Ingresos
- $tree[Tesoreria][Direccion_de_Ingresos]=""
- child: Tesoreria
- original : OU=Direccion_de_Contabilidad_y_Control_Presupuestal,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Contabilidad_y_Control_Presupuestal
- $tree[Tesoreria][Direccion_de_Contabilidad_y_Control_Presupuestal]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Control_Vehicular,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Control_Vehicular
- $tree[Direccion_de_administracion][Departamento_de_Control_Vehicular]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Servicios_Generales_y_Eventos_Especiales,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Servicios_Generales_y_Eventos_Especiales
- $tree[Direccion_de_administracion][Departamento_de_Servicios_Generales_y_Eventos_Especiales]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Control_de_Almacenes_e_Inventarios,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Control_de_Almacenes_e_Inventarios
- $tree[Direccion_de_administracion][Departamento_de_Control_de_Almacenes_e_Inventarios]=""
- child: Presidencia
- original : OU=Secretaria_Particular,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Presidencia
- key exists: Presidencia
- $tree[Presidencia][]=Secretaria_Particular
- $tree[Presidencia][Secretaria_Particular]=""
- child: Tesoreria
- original : OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 2 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=test_failure
- $tree[Tesoreria][Direccion_de_Egresos]=test_failure
- child: Presidencia
- original : OU=Oficialia_de_Partes,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Presidencia
- key exists: Presidencia
- $tree[Presidencia][]=Oficialia_de_Partes
- $tree[Presidencia][Oficialia_de_Partes]=""
- child: Tesoreria
- original : OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 3 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=testing_failure2
- $tree[Tesoreria][test_failure]=testing_failure2
- child: Tesoreria
- original : OU=testnig_failure3,OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 4 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=testnig_failure3
- $tree[Tesoreria][testing_failure2]=testnig_failure3
- ==================== Array =====================
- array(7) {
- ["IT_Admins"]=>
- string(0) ""
- ["Grupos"]=>
- string(0) ""
- ["usuarios_Generales"]=>
- string(0) ""
- ["Presidencia"]=>
- array(2) {
- [0]=>
- string(21) "Secretaria_Particular"
- [1]=>
- string(19) "Oficialia_de_Partes"
- }
- ["Sindicatura"]=>
- string(0) ""
- ["Direccion_de_administracion"]=>
- array(5) {
- [0]=>
- string(11) "Informatica"
- [1]=>
- string(29) "DEPARTAMENTO_DE_ADQUISICIONES"
- [2]=>
- string(33) "Departamento_de_Control_Vehicular"
- [3]=>
- string(56) "Departamento_de_Servicios_Generales_y_Eventos_Especiales"
- [4]=>
- string(50) "Departamento_de_Control_de_Almacenes_e_Inventarios"
- }
- ["Tesoreria"]=>
- array(6) {
- [0]=>
- string(20) "Direccion_de_Egresos"
- [1]=>
- string(21) "Direccion_de_Ingresos"
- [2]=>
- string(48) "Direccion_de_Contabilidad_y_Control_Presupuestal"
- ["Direccion_de_Egresos"]=>
- array(1) {
- [0]=>
- string(12) "test_failure"
- }
- ["test_failure"]=>
- array(1) {
- [0]=>
- string(16) "testing_failure2"
- }
- ["testing_failure2"]=>
- array(1) {
- [0]=>
- string(16) "testnig_failure3"
- }
- }
- }
- Desired output :
- im a head: IT_Admins
- im a head: Grupos
- im a head: usuarios_Generales
- im a head: Presidencia
- im a head: Sindicatura
- im a head: Direccion_de_administracion
- child: Direccion_de_administracion
- original : OU=Informatica,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Informatica
- $tree[Direccion_de_administracion][Informatica]=""
- child: Direccion_de_administracion
- original : OU=DEPARTAMENTO_DE_ADQUISICIONES,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=DEPARTAMENTO_DE_ADQUISICIONES
- $tree[Direccion_de_administracion][DEPARTAMENTO_DE_ADQUISICIONES]=""
- im a head: Tesoreria
- child: Tesoreria
- original : OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Egresos
- $tree[Tesoreria][Direccion_de_Egresos]=""
- child: Tesoreria
- original : OU=Direccion_de_Ingresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Ingresos
- $tree[Tesoreria][Direccion_de_Ingresos]=""
- child: Tesoreria
- original : OU=Direccion_de_Contabilidad_y_Control_Presupuestal,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=Direccion_de_Contabilidad_y_Control_Presupuestal
- $tree[Tesoreria][Direccion_de_Contabilidad_y_Control_Presupuestal]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Control_Vehicular,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Control_Vehicular
- $tree[Direccion_de_administracion][Departamento_de_Control_Vehicular]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Servicios_Generales_y_Eventos_Especiales,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Servicios_Generales_y_Eventos_Especiales
- $tree[Direccion_de_administracion][Departamento_de_Servicios_Generales_y_Eventos_Especiales]=""
- child: Direccion_de_administracion
- original : OU=Departamento_de_Control_de_Almacenes_e_Inventarios,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Direccion_de_administracion
- key exists: Direccion_de_administracion
- $tree[Direccion_de_administracion][]=Departamento_de_Control_de_Almacenes_e_Inventarios
- $tree[Direccion_de_administracion][Departamento_de_Control_de_Almacenes_e_Inventarios]=""
- child: Presidencia
- original : OU=Secretaria_Particular,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Presidencia
- key exists: Presidencia
- $tree[Presidencia][]=Secretaria_Particular
- $tree[Presidencia][Secretaria_Particular]=""
- child: Tesoreria
- original : OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 2 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=test_failure
- $tree[Tesoreria][Direccion_de_Egresos]=test_failure
- child: Presidencia
- original : OU=Oficialia_de_Partes,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 1 : Presidencia
- key exists: Presidencia
- $tree[Presidencia][]=Oficialia_de_Partes
- $tree[Presidencia][Oficialia_de_Partes]=""
- child: Tesoreria
- original : OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 3 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=testing_failure2
- $tree[Tesoreria][test_failure]=testing_failure2
- child: Tesoreria
- original : OU=testnig_failure3,OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
- parsed 4 : Tesoreria
- key exists: Tesoreria
- $tree[Tesoreria][]=testnig_failure3
- $tree[Tesoreria][testing_failure2]=testnig_failure3
- ==================== Array =====================
- array(7) {
- ["IT_Admins"]=>
- string(0) ""
- ["Grupos"]=>
- string(0) ""
- ["usuarios_Generales"]=>
- string(0) ""
- ["Presidencia"]=>
- array(2) {
- [0]=>
- string(21) "Secretaria_Particular"
- [1]=>
- string(19) "Oficialia_de_Partes"
- }
- ["Sindicatura"]=>
- string(0) ""
- ["Direccion_de_administracion"]=>
- array(5) {
- [0]=>
- string(11) "Informatica"
- [1]=>
- string(29) "DEPARTAMENTO_DE_ADQUISICIONES"
- [2]=>
- string(33) "Departamento_de_Control_Vehicular"
- [3]=>
- string(56) "Departamento_de_Servicios_Generales_y_Eventos_Especiales"
- [4]=>
- string(50) "Departamento_de_Control_de_Almacenes_e_Inventarios"
- }
- ["Tesoreria"]=>
- array(6) {
- [0]=>
- string(20) "Direccion_de_Egresos"
- array(1) {
- [0]=>
- string(12) "test_failure"
- array(1) {
- [0]=>
- string(16) "testing_failure2"
- array(1) {
- [0]=>
- string(16) "testnig_failure3"
- }
- }
- }
- [1]=>
- string(21) "Direccion_de_Ingresos"
- [2]=>
- string(48) "Direccion_de_Contabilidad_y_Control_Presupuestal"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement