PHP (LDAP) Suche erstellen wie im AD (Array vergleichen)
Hallo zusammen
Ich muss eine Benutzer-Suchfunktion wie im Active Directory mit PHP erstellen. Man soll nach „Muster Hans“, „Hans Muster“ oder zum Beispiel nach „Hans Mu“ suchen können.
Ich gebe also als Suche „Hans Mu“ ein und drücke auf "Suchen" (LDAP Verbindung etc. steht bereits alles)
Ich habe nun folgendes gemacht:
Den String „Hans Mu“ habe ich gesplittet und in den Array $prio2[$i] geschrieben. Bei beiden String-Teilen wird zusätzlich noch ein * angehängt. Im Array steht jetzt also:
$prio2 = Hans*
$prio2[1] = Mu*
Im 1. Durchgang suche ich im AD nach allen Vornamen und Nachnamen, welche „Hans“ enthalten und schreibe die Ergebnisse in den Array $row_1 bzw. $row_2
Das Gleiche natürlich auch mit dem zweiten Suchbegriff „Mu*“.
Die Ergebnisse werden in einem weiteren Array ($masterArray) gespeichert.
Ich erhalte somit einen 5 dimensionalen Array. Ich kann problemlos ein Wert auslesen.
Doch irgendwie muss ich nun diese Arrays vergleichen können. Ich habe es bereits mit "in_array" versucht. Ich glaube jedoch, dass das nicht die geeignete Funktion dafür ist…
Wir würde man am idealsten so einen Vergleich machen? Ich bin momentan ein wenig ratlos...
Danke für eure Antworten!
Gruss und einen schönen, hoffentlich sonnigen Tag
marco1234
Ich muss eine Benutzer-Suchfunktion wie im Active Directory mit PHP erstellen. Man soll nach „Muster Hans“, „Hans Muster“ oder zum Beispiel nach „Hans Mu“ suchen können.
Ich gebe also als Suche „Hans Mu“ ein und drücke auf "Suchen" (LDAP Verbindung etc. steht bereits alles)
Ich habe nun folgendes gemacht:
Den String „Hans Mu“ habe ich gesplittet und in den Array $prio2[$i] geschrieben. Bei beiden String-Teilen wird zusätzlich noch ein * angehängt. Im Array steht jetzt also:
$prio2 = Hans*
$prio2[1] = Mu*
Im 1. Durchgang suche ich im AD nach allen Vornamen und Nachnamen, welche „Hans“ enthalten und schreibe die Ergebnisse in den Array $row_1 bzw. $row_2
Das Gleiche natürlich auch mit dem zweiten Suchbegriff „Mu*“.
Die Ergebnisse werden in einem weiteren Array ($masterArray) gespeichert.
while(isset($prio2[$i]))
{
//Suche im AD nach Name
@$sr_1=ldap_search($ds,$base_dn, "givenname=".$prio2[$i]."");
@$sr_2=ldap_search($ds,$base_dn, "sn=".$prio2[$i]."");
//Ergebnis in Array speichern
@$row_1 = ldap_get_entries($ds, $sr_1);
@$row_2 = ldap_get_entries($ds, $sr_2);
//5 dimensionaler Array erstellen
$masterArray[$i] = $row_1;
$masterArray[$i][1] = $row_2;
$i++;
}
Ich erhalte somit einen 5 dimensionalen Array. Ich kann problemlos ein Wert auslesen.
echo $masterArray["sn"];
Doch irgendwie muss ich nun diese Arrays vergleichen können. Ich habe es bereits mit "in_array" versucht. Ich glaube jedoch, dass das nicht die geeignete Funktion dafür ist…
Wir würde man am idealsten so einen Vergleich machen? Ich bin momentan ein wenig ratlos...
Danke für eure Antworten!
Gruss und einen schönen, hoffentlich sonnigen Tag
marco1234
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146414
Url: https://administrator.de/contentid/146414
Ausgedruckt am: 19.11.2024 um 20:11 Uhr
2 Kommentare
Neuester Kommentar
Hi marco,
schau dir mal das Beispiel 1 hier an. Die machen das Ganze mit einer Abfrage. Somit müsste $sr ein Array sein, mit allen Einträgen.
Grüße,
Dani
schau dir mal das Beispiel 1 hier an. Die machen das Ganze mit einer Abfrage. Somit müsste $sr ein Array sein, mit allen Einträgen.
Grüße,
Dani