Hi,
ich komme nicht weiter! Ich bin zu unerfahren!!!
Und ich finde keinen besseren Titel!!!
Mein Wunsch:
Auf der Seite: KuG-Testseite | Startseite die Navigation "Reiseziele A-Z", die ich mit php erzeugt habe zu sortieren.
Der Code bisher:
Das erzeugt ganz prima die aktuelle Navigation. Nur leider ist die Reihenfolge durch den Dateinnamen bestimmt. Das macht ja die foreach-Schleife. Kann man überhaupt die "$nav_anzeigeliste" nach "$nav_reiseziel" sortiert ausgeben?
Ich hatte da mal angefangen zu suchen und fand folgenden Ansatz:
Damit hatte ich schon einmal folgenden Code:
Nun könnte man sicher nach Array[3] sortieren lassen und die arrays wieder als string generieren. Aber wie???
ich komme nicht weiter! Ich bin zu unerfahren!!!
Und ich finde keinen besseren Titel!!!
Mein Wunsch:
Auf der Seite: KuG-Testseite | Startseite die Navigation "Reiseziele A-Z", die ich mit php erzeugt habe zu sortieren.
Der Code bisher:
PHP-Code:
...
$nav_ordner = './reisen/'; // Da stehen die Reisen drin.
$nav_dir = scandir($nav_ordner);
$nav_reiseziel=""; // wegen error_reporting ;-)
foreach($nav_dir as $nav_key => $nav_value)
{
$nav_raus= FALSE;
$nav_pos=0;
$nav_dateipfad = "./data/".$nav_value; // In diesem Ordner stehen nur die Variablen drin. Sind die selben wie in /reisen/ nur noch nicht geparsed.
if (strlen($nav_dateipfad) > 11) { // eben ohne ./data/ und ../data/
$nav_handle = fopen ($nav_dateipfad, "rb");
while (! $nav_raus) {
$nav_zeile = fgets($nav_handle);
$nav_pos = strpos($nav_zeile, "reiseziel"); // Die Variable $reiseziel aus /data/ holen
if ($nav_pos > 0) {
$nav_reiseziel = substr($nav_zeile,14,strlen($nav_zeile)-17);
$nav_raus = true;
}
}
fclose($nav_handle);
}
$nav_dateiname = str_replace(".php", "", $nav_value);
if ($nav_reiseziel==''){ $nav_anzeigeliste = '';}
else {
$nav_anzeigeliste = " <li><a title=\"Zu den Reiseinformationen über $nav_reiseziel.\" href=\"/reisen/".$nav_dateiname.".html\">$nav_reiseziel</a></li>\n";
}
echo $nav_anzeigeliste;
}
...
Das erzeugt ganz prima die aktuelle Navigation. Nur leider ist die Reihenfolge durch den Dateinnamen bestimmt. Das macht ja die foreach-Schleife. Kann man überhaupt die "$nav_anzeigeliste" nach "$nav_reiseziel" sortiert ausgeben?
Ich hatte da mal angefangen zu suchen und fand folgenden Ansatz:
PHP-Code:
...
if ($nav_anzeigeliste != ''){
$sortierarray = preg_split('/(<[^>]*[^\/]>)/i', $nav_anzeigeliste, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
print_r($sortierarray); }
...
Code:
... Array ( [0] => [1] => <li> [2] => <a title="Zu den Reiseinformationen über zBerlin." href="/reisen/Berlin.html"> [3] => zBerlin [4] => </a> [5] => </li> [6] => ) Array ( [0] => [1] => <li> [2] => <a title="Zu den Reiseinformationen über Riga." href="/reisen/Riga.html"> [3] => Riga [4] => </a> [5] => </li> [6] => ) ...
Kommentar