CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
27.04.2003, 20:35:11
|
Anfänger
|
|
Registriert seit: Apr 2003
Beiträge: 19
|
|
Einlesen und sortieren
Hallo,
Ich lese mit den Befehlen while und readdir() ein Verzeichnis ein. Es sind nur .swf (Flashdateien) in dem Ordner vorhanden. Am Ende kommen die Arrays $files (Dateinamen), $size_file (Dateigrößen) und $unit_file (KB/MB..) heraus. Die Hits sind in einem zusätzlichem Array gespeichert, das zu den Hits auch den Dateiname zur richtigen Zuordnung beinhaltet. Beispiel aus diesem Array:
./flash/Dateiname.swf#75
Hier der gesamte Code (ohne Hits):
PHP-Code:
$size = 0;
$verz = opendir ("$global_flash_dir");
while ($entry = readdir ($verz))
{
$temp = explode(".",$entry);
if ($temp[1] == "$dateityp")
{
$a++;
$files[$a] = $entry;
$size_file[$a] = round(filesize("$global_flash_dir/$entry"),5);
if ($size_file[$a] > 1000000)
{
$size_file[$a] = round (round($size_file[$a]/1024,2)/1024,1);
$unit_file[$a] = "MB";
}
if ($size_file[$a] > 1000)
{
$size_file[$a] = round ($size_file[$a]/1024);
$unit_file[$a] = "KB";
}
$size_total = $size_total + filesize("$global_flash_dir/$entry");
}
}
closedir($verz);
Nur hab ich das Problem der Sortierung. Ich weiß nicht, wie ich die Arrays nach Namen/Dateigröße/Hits sortieren kann. Kann mir jemand helfen?
mfg Mucho
__________________
Was man nicht aufgibt, hat man nie verloren.(Friedrich Schiller)
|
28.04.2003, 06:38:12
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Alle Daten in ein Array packen und dann array_multisort() drauf loslassen. Sollte klappen.
|
28.04.2003, 19:03:03
|
Anfänger
|
|
Registriert seit: Apr 2003
Beiträge: 19
|
|
Hm, ich kenne array_multisort(), aber warum in ein Array? Dachte man könne es auch anders machen:
PHP-Code:
array_multisort($files,$size_file,$unit_file)
Aber gesagt -> getan. Funktioniert nur nicht. Mit dem Code
PHP-Code:
$sort_array["files"] = $files;
$sort_array["size"] = $size_file;
$sort_array["unit"] = $unit_file;
array_multisort($sort_array,SORT_STRING, SORT_ASC);
$files = $sort_array["files"];
$size_file = $sort_array["size"];
$unit_file = $sort_array["unit"];
Warum nicht???
mfg Mucho
__________________
Was man nicht aufgibt, hat man nie verloren.(Friedrich Schiller)
|
28.04.2003, 19:25:19
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Hast Du denn Deine Idee auch mal probiert? Ich hab mit array_multisort() noch nie gearbeitet. Wusste ja nicht mal, dass das Probleme machen könnte...
Ich hab das Problem immer über einen kleinen Umweg umgangen. :)
|
28.04.2003, 19:34:17
|
Anfänger
|
|
Registriert seit: Apr 2003
Beiträge: 19
|
|
Ja, hab ich. Funktioniert auch nicht...hab es noch nie geschafft irgendetwas zu sortieren...wenn es sich um Arrays handelte.
Wie hast du es umgangen?
mfg Mucho
__________________
Was man nicht aufgibt, hat man nie verloren.(Friedrich Schiller)
|
28.04.2003, 19:44:47
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
so sollte es gehen.
PHP-Code:
array_multisort($files, SORT_ASC, SORT_STRING, $size_file, SORT_ASC, SORT_STRING,$unit_file, SORT_NUMERIC, SORT_DESC);
for($i = 0; $i < count($files); $i++) print $files[$i].' - '.$size_file[$i].' - '.$unit_file[$i].'<br>';
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
28.04.2003, 19:50:57
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ein Beispiel:
$arr[0]=array(10, 'Dresden', 04);
$arr[1]=array(14, 'Münster', 04);
$arr[2]=array(23, 'Aachen', 04);
$arr[3]=array(10, 'Dresden', 03);
Dann bildet man ein Array, dass wie folgt aussieht:
$arr2[0]=$arr[0].'#'.$arr[1].'#'.$arr[2];
$arr2[1]=$arr[0].'#'.$arr[1].'#'.$arr[2];
$arr2[2]=$arr[0].'#'.$arr[1].'#'.$arr[2];
$arr2[3]=$arr[0].'#'.$arr[1].'#'.$arr[2];
Das Ganze natürlich in einer Schleife.
Dieses Array kannst Du dann mit sort($arr) fein sortieren und darfst es dann wieder Feld für Feld mit explode() auseinandernehmen.
PHP-Code:
<?php
// komplettes Etwas:
$arr[0]=array(10, 'Dresden', 04);
$arr[1]=array(14, 'Münster', 04);
$arr[2]=array(23, 'Aachen', 04);
$arr[3]=array(10, 'Dresden', 03);
$arr2[0]=$arr[0][0].'#'.$arr[0][1].'#'.$arr[0][2];
$arr2[1]=$arr[1][0].'#'.$arr[1][1].'#'.$arr[1][2];
$arr2[2]=$arr[2][0].'#'.$arr[2][1].'#'.$arr[2][2];
$arr2[3]=$arr[3][0].'#'.$arr[3][1].'#'.$arr[3][2];
$arr=sort($arr2);
echo $arr2[0]."<br>";
echo $arr2[1]."<br>";
echo $arr2[2]."<br>";
echo $arr2[3]."<br>";
?>
// Ausgabe:
10#Dresden#3
10#Dresden#4
14#Münster#4
23#Aachen#4
Es wird allerdings immer nach Strings sortiert, nicht numerisch!
PS: Versuch lieber die Variante von |Coding. ;)
|
29.04.2003, 20:22:34
|
Anfänger
|
|
Registriert seit: Apr 2003
Beiträge: 19
|
|
Danke Coding&c4 hab beide Varainten versucht...klappt nicht. Ich schreib mal den ganzen Code auf, vielleicht liegt es an was anderem:
EDITIERT
Es lag an einer veralteten Version meines Webservers. Hab es immer auf meinem Localem versucht...online geht es.
Danke...und sorry gleichzeitig
Ich hoffe es hilft...bin schon lange dran...
mfg mucho
__________________
Was man nicht aufgibt, hat man nie verloren.(Friedrich Schiller)
Geändert von mucho (06.05.2003 um 21:55:56 Uhr)
|
25.05.2003, 16:24:21
|
Anfänger
|
|
Registriert seit: Apr 2003
Beiträge: 19
|
|
Groß- und Kleinschreibung ignorieren?
Hallo,
ich hab noch ein Problem beim Befehl array_multisort() bzeüglich der Groß- und Kleinschreibung.
Meine Frage: Wie kann man bei der Sortierung die Groß- und Kleinschreibung ignorieren lassen?
PHP-Code:
<?php
$array[0] = "HTF-spin";
$array[1] = "abc";
$array[2] = "HTF-span";
array_multisort($array, SORT_ASC, SORT_STRING);
echo $array[0]."<br>".$array[1]."<br>".$array[2]."<br>";
?>
Ausgabe:
HTF-span
HTF-spin
abc
mfg mucho
__________________
Was man nicht aufgibt, hat man nie verloren.(Friedrich Schiller)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 10:47:29 Uhr.
|