| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

24-06-2004, 07:39
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Array nach Bildgröße sortieren?!?
Hallo!
Wie kann cih das beim folgenden Code so machen, dass die Bilder nach der Größe in das array geschrieben werden?!?
PHP-Code:
<?php
$files = array();
$number = 60; // Smileys pro Seite
$smpz = 3; // Smileys pro Zeile
$page = $s*$number;
$handle = opendir("smileys/".$kat."/");
if(!$handle){ die ("Fehler bei dem Öffnen der Kategorie!"); }
while ($file = readdir($handle))
{
if($file != "." && $file != ".."){
$files[] = $file;
}
}
?>
Thx!
__________________
Mit freundlichem Gruß,
Deathrow
|

24-06-2004, 07:42
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Re: Array nach Bildgröße sortieren?!?
Zitat:
|
Wie kann cih das beim folgenden Code so machen, dass die Bilder nach der Größe in das array geschrieben werden?!?
|
gib doch einfach als index die bildgröße an, und sortiere dann danach. sollte doch gehen?
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

24-06-2004, 07:44
|
|
Moqui
Master
|
|
Registriert seit: Jun 2002
Ort: Nehren, BW
Beiträge: 854
|
|
ja, aber nur wenn jede datei anders groß ist.
wenn du 2 dateien hast, die gleich groß sind, dann hast zwar nach größe geordnet, aber statt 200 dateien nur noch 199!
__________________
tata
moqui
Ich will keine unaufgeforderten Mails über PHP Fragen. Es gibt ein Forum hier! Und ich bin nicht Scripter für jeden, der mir ne Mail schreibt!
|

24-06-2004, 07:45
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Ne, das geht ja nciht, denn am Ende kommt ja:
PHP-Code:
<?php
for($i=1;$i<$number+1;$i++){
if($files[$page+($i-1)] != ""){
?>
<td align="middle">
<a href="">
<img border="0"
src="smiley.php?bild=<?php echo base64_encode($kat."/".$files[$page+($i-1)]); ?>"></a>
...
__________________
Mit freundlichem Gruß,
Deathrow
|

24-06-2004, 07:53
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
|
ja, aber nur wenn jede datei anders groß ist.
|
naja, mit ein wenig eigen-gehirn-einsatz hätte man spontan mindestens zwo lösungen finden können ...
Zitat:
|
Ne, das geht ja nciht, denn am Ende kommt ja:
|
und auch das stellt kein problem dar.
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

24-06-2004, 08:15
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
PHP-Code:
$handle = opendir('naja');
while ($file = readdir($handle)) {
if($file != "." && $file != "..") {
$files[filesize($file)][] = $file;
}
}
krsort($files);
foreach ($files as $dings) {
if (is_array($dings)) {
foreach ($dings as $bums) {
$newfiles[] = $bums;
}
}
else
$newfiles[] = $dings;
}
echo '<pre>';
print_r($files);
print_r($newfiles);
nicht wirklich getestet .... aber irgendwie so ...
EDIT: gerade ne weitere macke meiner ide entdeckt code sollte aber laufen
2. des is_array und der else-teil sind rudimentär und somit sinnfrei, naja.
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
Geändert von derHund (24-06-2004 um 08:19 Uhr)
|

24-06-2004, 09:08
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Das wiederum geht aber auch nicht!
Denn: Manche Bilder sind animiert und manche nicht!
__________________
Mit freundlichem Gruß,
Deathrow
|

24-06-2004, 09:13
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
Original geschrieben von Deathrow
Das wiederum geht aber auch nicht!
Denn: Manche Bilder sind animiert und manche nicht!
|

häh? wo ist da der zusammenhang? wodrauf beziehst du dich?
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

24-06-2004, 09:29
|
|
Hopka
PHP Expert
|
|
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.172
|
|
usort() ist genau für sowas geeignet.
Du musst dir nur noch eine Vergleichsfunktion mit 2 Parametern schreiben, die wenn
a) der erste Parameter kleiner als der zweite ist, -1 zurück gibt
b) beide Parameter gleich sind, 0 zurück gibt
c) der erste Parameter größer als der zweite ist, 1 zurück gibt.
Siehe Beispiel im Manual!
Du musst natürlich bei der Vergleichsfunktion die Dateigrößen vergleichen.
|

24-06-2004, 10:08
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Habe es jetzt so gelöst, aber jetzt ist die nächste Frage da:
Wie kann ich die breite der letzten 5 Bilder ($smpz) zusammenzählen?!?
(filesize ist die Dateigröße, und ncihtanimierte, große bilder waren da oft am ende des array, deswegen so, breite+höhe)
PHP-Code:
<?php include("header.php"); ?>
<?php
$files = array();
$number = 60; // Smileys pro Seite
$smpz = 5; // Smileys pro Zeile
$max_breite = 510; // Breite des Frames mit den Smileys
$page = $s*$number;
$handle = opendir("smileys/".$kat."/");
while ($file = readdir($handle)) {
if($file != "." && $file != "..") {
$groesse = getimagesize("smileys/".$kat."/".$file);
$files[$groesse[1]+$groesse[0]][] = $file;
}
}
ksort($files);
foreach ($files as $dings) {
if (is_array($dings)) {
foreach ($dings as $bums) {
$newfiles[] = $bums;
}
}
else
$newfiles[] = $dings;
}
$files = $newfiles;
?>
<!-- ab hier ist die seiten-anzeige -->
Seite:
<?php
for($i=0;$i<ceil(count($files)/$number);$i++){
if($s != $i){
?> [ <a href="smileys.php?kat=<?php echo $kat; ?>&s=<?php echo $i; ?>"><?php echo $i+1; ?></a> ] <?php
} else {
?> [ <?php echo $i+1; ?> ] <?php
}
}
?>
<br><br>
<!-- ab hier ist die smiley-anzeige -->
<table border="1" align="center">
<tr> <?php
for($i=1;$i<$number+1;$i++){
if($files[$page+($i-1)] != ""){
?> <td align="middle"> <a href="javascript:ShowSource('<?php echo base64_encode($kat."/".$files[$page+($i-1)]); ?>');"><img border="0" src="smiley.php?bild=<?php echo base64_encode($kat."/".$files[$page+($i-1)]); ?>"></a></td> <?php
if(!strstr($i/$smpz, ".")){
?> </tr><tr> <?php
}
}
}
?> </table>
<?php include("footer.php"); ?>
__________________
Mit freundlichem Gruß,
Deathrow
|

24-06-2004, 10:12
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
|
Wie kann ich die breite der letzten 5 Bilder ($smpz) zusammenzählen?!?
|
indem du sie bestimmst und dann addierst?
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

24-06-2004, 10:15
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
Zitat:
Original geschrieben von derHund
indem du sie bestimmst und dann addierst?
|
OffTopic:

|

24-06-2004, 12:10
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Ja, aber wie denn bestimmen?!?
__________________
Mit freundlichem Gruß,
Deathrow
|

24-06-2004, 12:13
|
|
derHund
PHP Master
|
|
Registriert seit: Aug 2003
Ort: Hundehütte
Beiträge: 5.293
|
|
Zitat:
|
Ja, aber wie denn bestimmen?!?
|
klick mal im post über dir zwischen die beiden motzer
Zitat:
getimagesize
(PHP 3, PHP 4 )
getimagesize -- Ermittelt die Ausmaße einer GIF-, JPEG-, PNG- oder SWF-Grafik-Datei
Beschreibung:
array getimagesize ( string filename [, array imageinfo])
Mit GetImageSize() ermitteln Sie die Daten jeder GIF-, JPG-, PNG oder SWF-Datei. Es werden die Ausmaße in Abhängigkeit vom Grafik-Typ sowie die Höhe und Breite als ein String zurückgegeben. Dieser kann innerhalb eines regulären HTML IMG-Tags verwendet werden.
|
__________________
Die Zeit hat ihre Kinder längst gefressen: hund (back in black) | ??? | ??? | ...
|

24-06-2004, 12:28
|
|
Deathrow
Member
|
|
Registriert seit: Jul 2003
Ort: Germany
Beiträge: 305
|
|
Ja, dass weis ihc. Aber wie kann cih rausfinden, dass es die letzten 5 sein sollen, von der Seite, wo ich mich da gerade befinde?!?
__________________
Mit freundlichem Gruß,
Deathrow
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
|
|
|
|
PHP News
|