Advertisement
Guest User

Untitled

a guest
Oct 10th, 2015
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.25 KB | None | 0 0
  1. function create_tree($user,$pass){
  2. $connection=ldap_connect('10.0.1.253','389');
  3. ldap_set_option($connection, LDAP_OPT_PROTOCOL_VERSION, 3);
  4. if($connection){
  5. $bind = ldap_bind($connection, $user, $pass);
  6. $read=ldap_search($connection,"ou=Nuestra_Capital,dc=local,dc=com,dc=mx","(ou=*)") or exit("Create tree function unable to search!");
  7. $info=ldap_get_entries($connection,$read);
  8. $tree=array();
  9. for($i=0;$i<$info['count'];$i++){
  10. $parent=explode(',',$info[$i]['dn']);
  11. if(count($parent)==5){
  12. //headers
  13. $nam=explode("=",$parent[0]);
  14. $tree[$nam[1]]='';
  15. echo "im a head: ".$nam[1].'<br/>';
  16. }else{
  17. //$tree[$nam[1]][]=$info[$i]['dn'];
  18. $k=count($parent)-4;
  19. do{
  20. $child=explode('=',$parent[$k]);
  21. if($child[1]!='Nuestra_Capital'){
  22. echo "child: ".$child[1]."<br/>";
  23. if(array_key_exists($child[1],$tree)){
  24. $ex=explode(",",$info[$i]['dn']);
  25. $res=(count($ex)-1)-$k;
  26. $tot=((count($ex)-1)-$res);
  27. $str=explode("=",$ex[$tot-$k]);
  28. $father=explode("=",$ex[($tot-$k)+1]);
  29.  
  30. echo "original : ".$info[$i]['dn'].'<br/>';
  31. echo "parsed ".$k." : ".$child[1].'<br/>';
  32. echo "key exists: ".$child[1].'<br/><br/>';
  33. //echo "value to be added: ".$str[1].' ?</br>';
  34. //echo "father : ".$father[1].' ? <br/>';
  35. echo '$tree['.$child[1].'][]='.$str[1].'<br/>';
  36. //$tree[$child[1]][]=$str[1];
  37. if(!array_key_exists($father[1],$tree)){
  38. echo '$tree['.$child[1].']['.$father[1].']='.$str[1].'<br/>';
  39. $tree[$child[1]][$father[1]][]=$str[1];
  40. }else{
  41. echo '$tree['.$child[1].']['.$str[1].']=""<br/>';
  42. $tree[$child[1]][]=$str[1];
  43. }
  44. break;
  45. }else{
  46. //echo "original: ".$info[$i]['dn'].'<br/>';
  47. echo "parsed ".$k.": ".$child[1].'<br/><br/><br/>';
  48. echo '$tree['.$child[1].']=""<br/>';
  49. $tree[$child[1]]='';
  50. }
  51. }
  52. $k--;
  53. }while($k>=0);
  54. }
  55. }
  56. }
  57. ldap_close($connection);
  58. echo "==================== Array =====================<br/><pre>";
  59. echo var_dump($tree);
  60. echo "</pre>";
  61. //return $tree;
  62. }
  63.  
  64. Output :
  65.  
  66. im a head: IT_Admins
  67. im a head: Grupos
  68. im a head: usuarios_Generales
  69. im a head: Presidencia
  70. im a head: Sindicatura
  71. im a head: Direccion_de_administracion
  72. child: Direccion_de_administracion
  73. original : OU=Informatica,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  74. parsed 1 : Direccion_de_administracion
  75. key exists: Direccion_de_administracion
  76.  
  77. $tree[Direccion_de_administracion][]=Informatica
  78. $tree[Direccion_de_administracion][Informatica]=""
  79. child: Direccion_de_administracion
  80. original : OU=DEPARTAMENTO_DE_ADQUISICIONES,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  81. parsed 1 : Direccion_de_administracion
  82. key exists: Direccion_de_administracion
  83.  
  84. $tree[Direccion_de_administracion][]=DEPARTAMENTO_DE_ADQUISICIONES
  85. $tree[Direccion_de_administracion][DEPARTAMENTO_DE_ADQUISICIONES]=""
  86. im a head: Tesoreria
  87. child: Tesoreria
  88. original : OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  89. parsed 1 : Tesoreria
  90. key exists: Tesoreria
  91.  
  92. $tree[Tesoreria][]=Direccion_de_Egresos
  93. $tree[Tesoreria][Direccion_de_Egresos]=""
  94. child: Tesoreria
  95. original : OU=Direccion_de_Ingresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  96. parsed 1 : Tesoreria
  97. key exists: Tesoreria
  98.  
  99. $tree[Tesoreria][]=Direccion_de_Ingresos
  100. $tree[Tesoreria][Direccion_de_Ingresos]=""
  101. child: Tesoreria
  102. original : OU=Direccion_de_Contabilidad_y_Control_Presupuestal,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  103. parsed 1 : Tesoreria
  104. key exists: Tesoreria
  105.  
  106. $tree[Tesoreria][]=Direccion_de_Contabilidad_y_Control_Presupuestal
  107. $tree[Tesoreria][Direccion_de_Contabilidad_y_Control_Presupuestal]=""
  108. child: Direccion_de_administracion
  109. original : OU=Departamento_de_Control_Vehicular,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  110. parsed 1 : Direccion_de_administracion
  111. key exists: Direccion_de_administracion
  112.  
  113. $tree[Direccion_de_administracion][]=Departamento_de_Control_Vehicular
  114. $tree[Direccion_de_administracion][Departamento_de_Control_Vehicular]=""
  115. child: Direccion_de_administracion
  116. original : OU=Departamento_de_Servicios_Generales_y_Eventos_Especiales,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  117. parsed 1 : Direccion_de_administracion
  118. key exists: Direccion_de_administracion
  119.  
  120. $tree[Direccion_de_administracion][]=Departamento_de_Servicios_Generales_y_Eventos_Especiales
  121. $tree[Direccion_de_administracion][Departamento_de_Servicios_Generales_y_Eventos_Especiales]=""
  122. child: Direccion_de_administracion
  123. original : OU=Departamento_de_Control_de_Almacenes_e_Inventarios,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  124. parsed 1 : Direccion_de_administracion
  125. key exists: Direccion_de_administracion
  126.  
  127. $tree[Direccion_de_administracion][]=Departamento_de_Control_de_Almacenes_e_Inventarios
  128. $tree[Direccion_de_administracion][Departamento_de_Control_de_Almacenes_e_Inventarios]=""
  129. child: Presidencia
  130. original : OU=Secretaria_Particular,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  131. parsed 1 : Presidencia
  132. key exists: Presidencia
  133.  
  134. $tree[Presidencia][]=Secretaria_Particular
  135. $tree[Presidencia][Secretaria_Particular]=""
  136. child: Tesoreria
  137. original : OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  138. parsed 2 : Tesoreria
  139. key exists: Tesoreria
  140.  
  141. $tree[Tesoreria][]=test_failure
  142. $tree[Tesoreria][Direccion_de_Egresos]=test_failure
  143. child: Presidencia
  144. original : OU=Oficialia_de_Partes,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  145. parsed 1 : Presidencia
  146. key exists: Presidencia
  147.  
  148. $tree[Presidencia][]=Oficialia_de_Partes
  149. $tree[Presidencia][Oficialia_de_Partes]=""
  150. child: Tesoreria
  151. original : OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  152. parsed 3 : Tesoreria
  153. key exists: Tesoreria
  154.  
  155. $tree[Tesoreria][]=testing_failure2
  156. $tree[Tesoreria][test_failure]=testing_failure2
  157. child: Tesoreria
  158. 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
  159. parsed 4 : Tesoreria
  160. key exists: Tesoreria
  161.  
  162. $tree[Tesoreria][]=testnig_failure3
  163. $tree[Tesoreria][testing_failure2]=testnig_failure3
  164. ==================== Array =====================
  165. array(7) {
  166. ["IT_Admins"]=>
  167. string(0) ""
  168. ["Grupos"]=>
  169. string(0) ""
  170. ["usuarios_Generales"]=>
  171. string(0) ""
  172. ["Presidencia"]=>
  173. array(2) {
  174. [0]=>
  175. string(21) "Secretaria_Particular"
  176. [1]=>
  177. string(19) "Oficialia_de_Partes"
  178. }
  179. ["Sindicatura"]=>
  180. string(0) ""
  181. ["Direccion_de_administracion"]=>
  182. array(5) {
  183. [0]=>
  184. string(11) "Informatica"
  185. [1]=>
  186. string(29) "DEPARTAMENTO_DE_ADQUISICIONES"
  187. [2]=>
  188. string(33) "Departamento_de_Control_Vehicular"
  189. [3]=>
  190. string(56) "Departamento_de_Servicios_Generales_y_Eventos_Especiales"
  191. [4]=>
  192. string(50) "Departamento_de_Control_de_Almacenes_e_Inventarios"
  193. }
  194. ["Tesoreria"]=>
  195. array(6) {
  196. [0]=>
  197. string(20) "Direccion_de_Egresos"
  198. [1]=>
  199. string(21) "Direccion_de_Ingresos"
  200. [2]=>
  201. string(48) "Direccion_de_Contabilidad_y_Control_Presupuestal"
  202. ["Direccion_de_Egresos"]=>
  203. array(1) {
  204. [0]=>
  205. string(12) "test_failure"
  206. }
  207. ["test_failure"]=>
  208. array(1) {
  209. [0]=>
  210. string(16) "testing_failure2"
  211. }
  212. ["testing_failure2"]=>
  213. array(1) {
  214. [0]=>
  215. string(16) "testnig_failure3"
  216. }
  217. }
  218. }
  219.  
  220.  
  221. Desired output :
  222. im a head: IT_Admins
  223. im a head: Grupos
  224. im a head: usuarios_Generales
  225. im a head: Presidencia
  226. im a head: Sindicatura
  227. im a head: Direccion_de_administracion
  228. child: Direccion_de_administracion
  229. original : OU=Informatica,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  230. parsed 1 : Direccion_de_administracion
  231. key exists: Direccion_de_administracion
  232.  
  233. $tree[Direccion_de_administracion][]=Informatica
  234. $tree[Direccion_de_administracion][Informatica]=""
  235. child: Direccion_de_administracion
  236. original : OU=DEPARTAMENTO_DE_ADQUISICIONES,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  237. parsed 1 : Direccion_de_administracion
  238. key exists: Direccion_de_administracion
  239.  
  240. $tree[Direccion_de_administracion][]=DEPARTAMENTO_DE_ADQUISICIONES
  241. $tree[Direccion_de_administracion][DEPARTAMENTO_DE_ADQUISICIONES]=""
  242. im a head: Tesoreria
  243. child: Tesoreria
  244. original : OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  245. parsed 1 : Tesoreria
  246. key exists: Tesoreria
  247.  
  248. $tree[Tesoreria][]=Direccion_de_Egresos
  249. $tree[Tesoreria][Direccion_de_Egresos]=""
  250. child: Tesoreria
  251. original : OU=Direccion_de_Ingresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  252. parsed 1 : Tesoreria
  253. key exists: Tesoreria
  254.  
  255. $tree[Tesoreria][]=Direccion_de_Ingresos
  256. $tree[Tesoreria][Direccion_de_Ingresos]=""
  257. child: Tesoreria
  258. original : OU=Direccion_de_Contabilidad_y_Control_Presupuestal,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  259. parsed 1 : Tesoreria
  260. key exists: Tesoreria
  261.  
  262. $tree[Tesoreria][]=Direccion_de_Contabilidad_y_Control_Presupuestal
  263. $tree[Tesoreria][Direccion_de_Contabilidad_y_Control_Presupuestal]=""
  264. child: Direccion_de_administracion
  265. original : OU=Departamento_de_Control_Vehicular,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  266. parsed 1 : Direccion_de_administracion
  267. key exists: Direccion_de_administracion
  268.  
  269. $tree[Direccion_de_administracion][]=Departamento_de_Control_Vehicular
  270. $tree[Direccion_de_administracion][Departamento_de_Control_Vehicular]=""
  271. child: Direccion_de_administracion
  272. original : OU=Departamento_de_Servicios_Generales_y_Eventos_Especiales,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  273. parsed 1 : Direccion_de_administracion
  274. key exists: Direccion_de_administracion
  275.  
  276. $tree[Direccion_de_administracion][]=Departamento_de_Servicios_Generales_y_Eventos_Especiales
  277. $tree[Direccion_de_administracion][Departamento_de_Servicios_Generales_y_Eventos_Especiales]=""
  278. child: Direccion_de_administracion
  279. original : OU=Departamento_de_Control_de_Almacenes_e_Inventarios,OU=Direccion_de_administracion,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  280. parsed 1 : Direccion_de_administracion
  281. key exists: Direccion_de_administracion
  282.  
  283. $tree[Direccion_de_administracion][]=Departamento_de_Control_de_Almacenes_e_Inventarios
  284. $tree[Direccion_de_administracion][Departamento_de_Control_de_Almacenes_e_Inventarios]=""
  285. child: Presidencia
  286. original : OU=Secretaria_Particular,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  287. parsed 1 : Presidencia
  288. key exists: Presidencia
  289.  
  290. $tree[Presidencia][]=Secretaria_Particular
  291. $tree[Presidencia][Secretaria_Particular]=""
  292. child: Tesoreria
  293. original : OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  294. parsed 2 : Tesoreria
  295. key exists: Tesoreria
  296.  
  297. $tree[Tesoreria][]=test_failure
  298. $tree[Tesoreria][Direccion_de_Egresos]=test_failure
  299. child: Presidencia
  300. original : OU=Oficialia_de_Partes,OU=Presidencia,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  301. parsed 1 : Presidencia
  302. key exists: Presidencia
  303.  
  304. $tree[Presidencia][]=Oficialia_de_Partes
  305. $tree[Presidencia][Oficialia_de_Partes]=""
  306. child: Tesoreria
  307. original : OU=testing_failure2,OU=test_failure,OU=Direccion_de_Egresos,OU=Tesoreria,OU=Nuestra_Capital,DC=local,DC=com,DC=mx
  308. parsed 3 : Tesoreria
  309. key exists: Tesoreria
  310.  
  311. $tree[Tesoreria][]=testing_failure2
  312. $tree[Tesoreria][test_failure]=testing_failure2
  313. child: Tesoreria
  314. 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
  315. parsed 4 : Tesoreria
  316. key exists: Tesoreria
  317.  
  318. $tree[Tesoreria][]=testnig_failure3
  319. $tree[Tesoreria][testing_failure2]=testnig_failure3
  320. ==================== Array =====================
  321. array(7) {
  322. ["IT_Admins"]=>
  323. string(0) ""
  324. ["Grupos"]=>
  325. string(0) ""
  326. ["usuarios_Generales"]=>
  327. string(0) ""
  328. ["Presidencia"]=>
  329. array(2) {
  330. [0]=>
  331. string(21) "Secretaria_Particular"
  332. [1]=>
  333. string(19) "Oficialia_de_Partes"
  334. }
  335. ["Sindicatura"]=>
  336. string(0) ""
  337. ["Direccion_de_administracion"]=>
  338. array(5) {
  339. [0]=>
  340. string(11) "Informatica"
  341. [1]=>
  342. string(29) "DEPARTAMENTO_DE_ADQUISICIONES"
  343. [2]=>
  344. string(33) "Departamento_de_Control_Vehicular"
  345. [3]=>
  346. string(56) "Departamento_de_Servicios_Generales_y_Eventos_Especiales"
  347. [4]=>
  348. string(50) "Departamento_de_Control_de_Almacenes_e_Inventarios"
  349. }
  350. ["Tesoreria"]=>
  351. array(6) {
  352. [0]=>
  353. string(20) "Direccion_de_Egresos"
  354. array(1) {
  355. [0]=>
  356. string(12) "test_failure"
  357. array(1) {
  358. [0]=>
  359. string(16) "testing_failure2"
  360. array(1) {
  361. [0]=>
  362. string(16) "testnig_failure3"
  363. }
  364. }
  365. }
  366. [1]=>
  367. string(21) "Direccion_de_Ingresos"
  368. [2]=>
  369. string(48) "Direccion_de_Contabilidad_y_Control_Presupuestal"
  370. }
  371. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement