php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.03.2011, 22:48  
Neuer Benutzer
 
Registriert seit: 11.03.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
starpvtpaula befindet sich auf einem aufstrebenden Ast
Standard Grafikdateien Sortieren

Halli Hallo PHPForum Team/ Community

ich habe mich jetzt mit mehreren Leuten und etlichen Stunden an einem Script versucht. Doch es will nicht sorecht klappen.

Die Grundidee ist relativ Simple:

Das PHP Script durchsucht einen Ordner in dem Grafiken als .PNG vorliegen. Nun soll das Script diese auch auf einer Seite Präsentieren was es Soweit tut. Ich habe so Protag um die 5000 Grafiken in diesem einen Ordner. Das Script liest sie aus und stellt sie mir auch da bloß jetzt kommt der Knackpunkt.

Der Fehler an sich:

Ich bekomme nicht alle Bilder angezeigt. Von 1000 Grafiken zeigt er mir lediglich 300 an ab da ist dann Schluss. Das wäre das Erste Problem, das Zweite wäre das er die gefundenen Dateien Sortieren soll. Ein Beispiel:

Ein Bild ist größer als 5000 bytes = folglich wird es auf der Seite angezeigt

Ein Bild ist kleiner als 5000 bytes = folglich soll es aussortiert werden und nicht angezeigt werden.

Weiss jemand von euch wie ich das bewerkstelligen kann? Bin so langsam am Verzweifeln.

Hier habe ich ein Script was ich derzeit benutze was aber die Oben genannten Fehler aufweist:

PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>-Star-eSportz | PBScreens Viewer</title>
<style type="text/css">
span { color:#FFFFFF }
</style>
</head>

<body bgcolor="#202020" >
<div align="center">
<img src="" align="middle">
</div>
<br>
<br>
<?php

if (isset($_GET["start"]) and $_GET["start"] <= "2000" and $_GET["start"] >= "0") {
    
$start $_GET["start"];
} else {
    
$start "1";
}

if (isset(
$_GET["anzahl"])) {
    
$anzahl $_GET["anzahl"];
} else {
    
$anzahl "100";
}

if (isset(
$_GET["server"])) {
    
$screen_folder $_GET["server"];
} else {
    
$screen_folder "cracked";
}
$start_weiter $start+$anzahl;
$start_zurueck $start-$anzahl;

function 
GetFilesFromDir($FilePath$IndexFunc "filemtime"$UniqueValues true)
{
    
$PathHandle opendir($FilePath);
    
    if (
$PathHandle === false)
    {
        echo 
"GetFilesFromDir(): Could not read Directory ( " $PathHandle ")";
        return 
false;
    }
    
    
$FileList = array();
    while (
false !== ($FileName readdir($PathHandle))) {
    
$FullFileName $FilePath $FileName;

    if(!
is_dir($FullFileName))
    {
        if(
function_exists($IndexFunc))
        {
            
$FileIndex call_user_func($IndexFunc$FullFileName);
        }
    else
    {
        echo 
"GetFilesFromDir(): " $IndexFunc " ist keine Function";
        return 
false;
    }
    
    if(
$UniqueValues)
    {
        
$FileIndex .= "_" md5($FullFileName); // Verhindern von Array Rewrite
    
}
    
    
$FileList[$FileIndex] = array
    (
        
"FileName" => $FileName,
        
"FullFileName" => $FullFileName
        
// Hier optional weitere Informationen von Datei (Mime-Typ, Dateigröße, ...)
    
);
    } 
// if(!is_dir($FullFileName))
    
// while (false !== ($FileName = readdir($PathHandle)))
    
    
return $FileList;
}

$ImageFileList GetFilesFromDir($screen_folder."/""filectime");
krsort($ImageFileList);
?>
<div align="center">
<form action="pbscreens.php" method="get">
    <input type="hidden" name="server" value="<?php echo $screen_folder?>" />
    <span>Anzahl der Bilder: </span><input type="text" name="anzahl" value="<?php echo $anzahl?>"/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <span>Start der Bilder: </span><input type="text" name="start" value="<?php echo $start?>"/>&nbsp;&nbsp;
    <input type="submit" name="Go" />
</form>
<br> <br>
<form action="pbscreens.php" method="get">
    <input type="submit" name="server" value="promodlive211_star"   />
</form>
</div>

<br>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" align="right">
<form action="pbscreens.php" method="get">
    <input type="hidden" name="anzahl" value="<?php echo $anzahl?>" />
    <input type="hidden" name="server" value="<?php echo $screen_folder?>"  />
    <input type="hidden" name="start" value="<?php echo $start_zurueck?>"  />
    <input type="submit" name="action" value="Zur&uuml;ck" />
</form>
</td>
<td align="left" width="50%">
<form action="pbscreens.php" method="get">
    <input type="hidden" name="anzahl" value="<?php echo $anzahl?>" />
    <input type="hidden" name="server" value="<?php echo $screen_folder?>"  />
    <input type="hidden" name="start" value="<?php echo $start_weiter?>"  />
    <input type="submit" name="action" value="Weiter" />
</form>
</td>
</tr>
</table>
<div align="center">
<?php

$anfang 
$start;
$ende $start+$anzahl;

$count 0;
$break 0;

foreach(
$ImageFileList as $imageinfo) {
  
$find stripos($imageinfo['FullFileName'], ".png");    
  
  if(
$find === false) {
    continue;
  }
  
  if(
$count $anfang) {
        
$count++;
    continue;
    }
  
  if( 
$count >= $ende ) {
        break;
    }
     
  if(
$find !== false) {
    
    echo 
'<img src="'.$imageinfo['FullFileName'].'">';
    
//echo $imageinfo['FullFileName'];
    
$break++;
    
    if (
$break == 2) {
      
$break 0;
      echo 
'<br />';
    }
  } else {
    
$count--;
  }
  
$count++;
}



?>
</div>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width="50%" align="right">
<form action="pbscreens.php" method="get">
    <input type="hidden" name="anzahl" value="<?php echo $anzahl?>" />
    <input type="hidden" name="server" value="<?php echo $screen_folder?>"  />
    <input type="hidden" name="start" value="<?php echo $start_zurueck?>"  />
    <input type="submit" name="action" value="Zur&uuml;ck" />
</form>
</td>
<td align="left" width="50%">
<form action="pbscreens.php" method="get">
    <input type="hidden" name="anzahl" value="<?php echo $anzahl?>" />
    <input type="hidden" name="server" value="<?php echo $screen_folder?>"  />
    <input type="hidden" name="start" value="<?php echo $start_weiter?>"  />
    <input type="submit" name="action" value="Weiter" />
</form>
</td>
</tr>
</table>

</body>
</html>
Ich würde mich riesig freuen wenn mir da jemand Helfen würde

Ich Danke euch schonmla für eure Bemühungen im Vorraus

mfg Paula
starpvtpaula ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.03.2011, 01:22  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von starpvtpaula Beitrag anzeigen
Halli Hallo PHPForum Team/ Community

ich habe mich jetzt mit mehreren Leuten und etlichen Stunden an einem Script versucht. Doch es will nicht sorecht klappen.

Die Grundidee ist relativ Simple:

Das PHP Script durchsucht einen Ordner in dem Grafiken als .PNG vorliegen. Nun soll das Script diese auch auf einer Seite Präsentieren was es Soweit tut. Ich habe so Protag um die 5000 Grafiken in diesem einen Ordner. Das Script liest sie aus und stellt sie mir auch da bloß jetzt kommt der Knackpunkt.

Der Fehler an sich:

Ich bekomme nicht alle Bilder angezeigt. Von 1000 Grafiken zeigt er mir lediglich 300 an ab da ist dann Schluss. Das wäre das Erste Problem, ...
Möglicherweise schlägt hier das "time limit" zu. PHP-Scripts haben eine eingebaute Zeitbegrenzung. Hättest du dein Script mit aufgedrehtem Error-Reporting (mindestens E_ALL) getestet, hätte es eine entsprechende Meldung gegeben.

set_time_limit()
error_reporting()

Zitat:
...das Zweite wäre das er die gefundenen Dateien Sortieren soll. Ein Beispiel:

Ein Bild ist größer als 5000 bytes = folglich wird es auf der Seite angezeigt

Ein Bild ist kleiner als 5000 bytes = folglich soll es aussortiert werden und nicht angezeigt werden.

Weiss jemand von euch wie ich das bewerkstelligen kann? Bin so langsam am Verzweifeln.
Was willst du?
Filtern (Aussieben) oder Sortieren?
Sortieren ist aufwändiger. Filtern ist simpel.

PHP kennt eine nette Funktion namens filesize(). Überreicht man der einen Pfad zu einer existierenden Datei, gibt sie die Dateigröße zurück. Diesen Wert kannst du mit deinem Limit vergleichen und die nicht passenden Dateien überspringen.

Geändert von fireweasel (12.03.2011 um 01:25 Uhr).
fireweasel ist offline   Mit Zitat antworten
Alt 12.03.2011, 01:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Nun soll das Script diese auch auf einer Seite Präsentieren was es Soweit tut. Ich habe so Protag um die 5000 Grafiken in diesem einen Ordner. Das Script liest sie aus und stellt sie mir auch da bloß jetzt kommt der Knackpunkt.
Die Frage ist: Wenn das 5000 pro Tag sind, wieso verteilst Du dann nicht die Arbeit für das Script auch auf den Tag?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.03.2011, 02:24  
Neuer Benutzer
 
Registriert seit: 11.03.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
starpvtpaula befindet sich auf einem aufstrebenden Ast
Standard

Schoneinmal ULTRA vielen dank für eure Antworten (=

Zitat:
Was willst du?
Filtern (Aussieben)
Richtig ich möchte Dateien die eine bestimmte größe haben nicht angezeigt bekommen. Nun kenne ich den Befehl filesize schon bloß wie stell ich das an also wie in etwa sollte der code lauten das er nur die Dateien übergibt die Größer sind als 5000 bytes. Ich dachte da so an if und else aber ich hab denkfehler behaupte ich mal denn ich komme zu keinem ergebnis....

Zitat:
Wenn das 5000 pro Tag sind, wieso verteilst Du dann nicht die Arbeit für das Script auch auf den Tag?
Das hat sich erledigt ich habe mein unstimmigkeiten soweit geklärt das ich nur noch 300 Bilder nehme.

mfg

Paule
starpvtpaula ist offline   Mit Zitat antworten
Alt 12.03.2011, 03:05  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Ich dachte da so an if und else aber ich hab denkfehler behaupte ich mal denn ich komme zu keinem ergebnis....
Na dann denk mal weiter, setze das in Code um und komme wieder, wenn Du konkrete Probleme hast. Deinen Code schreiben wird Dir hier niemand.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 12.03.2011, 10:28  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von starpvtpaula Beitrag anzeigen
... Nun kenne ich den Befehl filesize schon bloß wie stell ich das an also wie in etwa sollte der code lauten das er nur die Dateien übergibt die Größer sind als 5000 bytes. Ich dachte da so an if und else aber ich hab denkfehler behaupte ich mal denn ich komme zu keinem ergebnis....
Das ist jetzt aber nicht dein Ernst, oder?

PHP-Code:
$dir_path = ...;
$min_size 5000;

if (!
is_resource($dir opendir($dir_path)) {
    die(
'error reading directory!');
}
chdir($dir_path);
$filtered_files = array ();
while (
is_string($entry readdir($dir))) {
    if (
        
// ueberspringt Nicht-Dateien
        
!is_file($entry) || 
        
// ueberspringt zu kleine Dateien
        
filesize($entry) <= $min_size
    
) {
        continue;
    }
    
$filtered_files[] = realpath($entry);
}
closedir($dir);

// die Pfade zu den Bilddateien sind nun in 
// $filtered_files
// das geben wir zum Test aus:
var_dump($filtered_files); 
Einbauen musst du das aber selbst. Ich hege eine grundsätzliche Abneigung gegen die bunte Mischung von PHP und HTML und habe mir daher dein Script nicht näher angesehen.


Zitat:
Zitat von starpvtpaula Beitrag anzeigen
...

mfg Paula
Zitat:
Zitat von starpvtpaula Beitrag anzeigen
... mfg

Paule
Huch! Hast du jetzt über Mitternacht dein Geschlecht gewechselt?
Oder passiert das häufiger?

Geändert von fireweasel (12.03.2011 um 10:40 Uhr).
fireweasel ist offline   Mit Zitat antworten
Alt 12.03.2011, 15:03  
Neuer Benutzer
 
Registriert seit: 11.03.2011
Beiträge: 3
PHP-Kenntnisse:
Anfänger
starpvtpaula befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fireweasel Beitrag anzeigen
Huch! Hast du jetzt über Mitternacht dein Geschlecht gewechselt?
Oder passiert das häufiger?
Pvt.Paula heisse ich ingame aber im TS oder sonstiges was nicht ingame Passiert nennen sie mich Paule deshalb schreib ich das.

Ich danke ecuh vielmals für eure mühen und werde es sogleich ausprobieren wenn ich ein ergebnis habe werde ich euch darüber in kenntniss setzen.

Habt dank und einen schönen Tag noch

mfg Paula/ Pvt.Paula / Paule
starpvtpaula ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Textdatenbank zeilenweise alphabetisch sortieren - Drop Down Menü alphabet UdoDirk PHP Tipps 2010 1 24.07.2010 10:45
Array sortieren... BlackScorp PHP Tipps 2010 15 12.07.2010 08:20
[Erledigt] Verschachteltes assoziatives Array Sortieren !!! 7Style PHP Tipps 2009 3 25.12.2009 00:39
Termin-Array sortieren (mehrdimensionaler Array) mumaha PHP Tipps 2009 1 13.11.2009 08:14
Problem mit Array sortieren MySelf PHP Tipps 2009 1 12.02.2009 11:03
Highscoreliste - Array sortieren und ausgeben archipage PHP Tipps 2009 7 11.01.2009 13:15
[Erledigt] Array sortieren nach 2 Kriterien zwerg PHP Tipps 2008 6 19.08.2008 15:43
Array nach mehreren Feldern sortieren Marcel1 PHP Tipps 2008 4 04.06.2008 05:09
Nach Datum sortieren zoro Datenbanken 9 28.11.2007 14:00
DECIMAL lässt sich nicht mit ORDER BY sortieren buggybugga Datenbanken 4 07.07.2006 15:43
Problem beim Sortieren PHP Tipps 2005-2 5 29.06.2005 07:00
[Erledigt] sortieren von arrays aus mysql Datenbanken 7 28.04.2005 21:53
[Erledigt] Alphabetisch sortieren PHP Tipps 2004 17 15.07.2004 23:15
Sortieren nach Timestamp Datenbanken 5 01.06.2004 16:04

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php dateien sortieren, bilder aus verzeichnis sortieren php, bilder nach datum sortieren, scripts

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum