php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.10.2004, 12:33  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Ich weis nicht, was du da machst.

Ich habe in deinem Script an der Stelle wo Du gesagt hast ein var_dump() eingefügt und da steht ein Array drin.

PHP-Code:
<?php

  
// Verzeichnis wird geöffnet 
   
$verz=opendir("."); 
 
   
// Ein Array wird erstellt in dem nachher die Dateien gespeichert werden 
   
$linkl = array (); 

   while(
true == ($file readdir ($verz))) 
   { 
 
 
//Alle Dateien in den Array einlesen 
     
$jpegtrue pathinfo($file); 
    if(
$jpegtrue['extension'] == "jpg"
    { 
     
//Damit "." und ".." nicht ins Array geschrieben werden, werden sie ausgenommen.     
     
if($file != "." && $file != ".." && $file != $filename
      { 
       
array_push ($linkl"$file"); // Der Dateiname wird in den Array $linkl geschrieben 
     

     } 
    } 
 
   
// Anzahl der Dateien im Ordner == Anzahl der Einträge im Array 
   
$anzahl count($linkl); 
 
   
// Array wird nach Alphabet sortiert 
   
sort ($linkl); 
 
 
#################################################################################################### 

var_dump($linkl);

   foreach(
$linkl as $key => $value
   { 
 
   
//Thumb schon vorhanden? Wenn nein, wird er erstellt 
     
if(!file_exists($des_src."/".$value)) 
     { 
       
// erstelle ein thumb (Funktion ist weiter oben deklariert) 
       
mkthumb($value$thumbx$thumby$folder_scr$des_src); 
     } 
   
//Ausgabe der Thumbs/Des Arrays: 
   
echo "<td>"
   echo 
"<a href=\"index.php?action=showpic&amp;folder=".$folder_scr."/&amp;pic=".$value."&amp;event=".$fileplace."\">\n"
   echo 
"[img].$des_src.[/img]</a>\n"
   echo 
"
[b]"
.round((filesize($folder_scr."/".$value)/1024),2)."kb[/b]"
   
$j++; 
   echo 
"</td>"
    
$i++; 
    if(
$i $cols
    { 
    echo 
"</tr>\n<tr>\n"
    
$i 1
    } 
   } 
 
   
closedir($verz);
?>
Gibt folgendes aus:
array(1) { [0]=> string(5) "a.jpg" }
Fatal error: Call to undefined function: mkthumb() in /mnt/data/vol/www/htdocs/bla.php on line 40

In dem Verzeichnis befindet sich bei mir in der Tat genau diese a.jpg. Da würde ich übrigens noch ein strtolower() einbauen, damit .JPG oder ähnliches auch erkannt wird.
__________________
mod = master of disaster
Waq ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 25.10.2004, 12:50  
Gast
 
Beiträge: n/a
Standard

Hi!

das ist die Funktion, die den Thumb erstellt
Code:
####################################################################################################
//Funktion, die die Thumbs erstellt
  function mkthumb($img_src,     // Dateiname 
                   $img_width,   // max. Größe in x-Richtung 
                   $img_height,  // max. Größe in y-Richtung 
                  $folder_scr,  // Ordner der normalen Bilder 
                   $des_src)     // Ordner der Thumbs  
  { 
   if (!file_exists($des_src)) {
		 umask(0000);
         mkdir($des_src, 0777);
         }
   	$image = imagecreatefromjpeg($folder_scr."/".$img_src); 
    list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src); 
    if($src_width >= $src_height) 
    { 
      $new_image_width = $img_width; 
      $new_image_height = $src_height * $img_width / $src_width; 
    } 
    if($src_width < $src_height) 
    { 
      $new_image_height = $img_width; 
      $new_image_width = $src_width * $img_height / $src_height; 
    } 
    $new_image = imagecreate($new_image_width, $new_image_height); 
    imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); 
    imagejpeg($new_image, $des_src."/".$img_src, 100); 
  } 
####################################################################################################
Kannst du umgehen, in dem du im Ordner einen Unterordner namens thumbs erstellst und dort nochmal die Datei a.jpg einfügst.

Bei mir steht da kein Array drin, kommt nur NULL... Das Grundprinzip des Scripts beruht auf dem von codeschnipsel.net bzw. dem hier im Tutorial Forum angegeben!
 
Alt 25.10.2004, 12:55  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von santacruzshores
Bei mir steht da kein Array drin, kommt nur NULL...
Mit dem script, das ich gepostet habe?
Der Fatal Error war mir um ehrlich zu sein egal, da er nach der interessanten stelle kam.
__________________
mod = master of disaster
Waq ist offline  
Alt 25.10.2004, 13:56  
Gast
 
Beiträge: n/a
Standard

Ok, wenn ich das Script von dir benutze, steht im array was drin.

Ich kann ja mal das ganze Script, mit allem drum und dran, posten...

Code:
<?php

####################################################################################################
//Funktion, die die Thumbs erstellt
  function mkthumb($img_src,     // Dateiname 
                   $img_width,   // max. Größe in x-Richtung 
                   $img_height,  // max. Größe in y-Richtung 
                  $folder_scr,  // Ordner der normalen Bilder 
                   $des_src)     // Ordner der Thumbs  
  { 
   if (!file_exists($des_src)) {
		 umask(0000);
         mkdir($des_src, 0777);
         }
   	$image = imagecreatefromjpeg($folder_scr."/".$img_src); 
    list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src); 
    if($src_width >= $src_height) 
    { 
      $new_image_width = $img_width; 
      $new_image_height = $src_height * $img_width / $src_width; 
    } 
    if($src_width < $src_height) 
    { 
      $new_image_height = $img_width; 
      $new_image_width = $src_width * $img_height / $src_height; 
    } 
    $new_image = imagecreate($new_image_width, $new_image_height); 
    imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height); 
    imagejpeg($new_image, $des_src."/".$img_src, 100); 
  } 
####################################################################################################

####################################################################################################
#Einstellungen
//Hauptverzeichnis der Bilder Galerien
$rootdir = "galleries";
//Mit event wird die Galerie, die angezeigt werden soll, übergeben
$fileplace = $event;
//Zählvariable für die Anzeige wird 1 gesetzt
$i = "1";
$j = "0";
//Wieviele Spalten?
$cols = "4";
####################################################################################################

####################################################################################################
#Ordner ausgeben
//Wenn event nicht gesetzt ist, gibt er erstmal alle Ordner aus
if(!isset($event)) {
$dir = opendir($rootdir);

 while($file = readdir($dir)) 
 {
 
  if($file != "." AND $file != "..") 
  {
  //Entfernt alle "_" aus dem Ordnernamen
  $file_screen = ereg_replace("_", " ", $file);
  echo "<a href=\"index.php?action=pictures&amp;event=".$file."\">".$file_screen."</a>

";
  }
 }
  echo "<hr class=\"w20\" />";
  echo "SEBFX v. 1.06";

//Wenn event gesetzt ist  
 } else {
####################################################################################################
//Existiert der Ordner überhaupt? Wenn ja, dann wird er angezigt, wenn nein, Fehlermeldung (unten)
$dir_exists = $rootdir."/".$fileplace;
if(file_exists($dir_exists)) {
####################################################################################################
#Thumbs
//Ansonsten gibt event den Ordner an und die Thumbs werden erstellt
echo "<table cellpadding=\"5\" cellspacing=\"5\" class=\"w100center\" border=\"0\">\n";
echo "<tr><th colspan=\"4\">\n";

//Entfernt alle "_" aus dem Ordnernamen
$file_screen = ereg_replace("_", " ", $fileplace);
echo "<h1>".$file_screen."</h1>\n";
echo "</td></tr>\n";

echo "<tr><td colspan=\"4\" class=\"left\">\n";
echo "Ordner: /".$fileplace."\n";
echo "</th></tr>\n";
echo "<tr><td  colspan=\"4\" class=\"left\">\n";
echo "<a href=\"index.php?action=pictures\">Zur&uuml;ck zur Auswahl</a>";
echo "</th></tr>\n";
echo "<tr><td colspan=\"4\" class=\"h30\">\n";
echo "</th></tr>\n";
echo "<tr>";

####################################################################################################
//Einstellungen
//Name des Ordners, in dem die Originale sind: 
  $folder_scr  = $rootdir."/".$fileplace; 
//Name des Ordners, in den die Thumbs sollen: 
  $des_src     = $rootdir."/".$fileplace."/thumbs"; 
//Max. Ausdehnung der thumb-Datei in x-Richtung 
  $thumbx      = "150"; 
//Max. Ausdehnung der thumb-Datei in y-Richtung 
  $thumby      = "150"; 
  // Name dieser PHP-Datei 
  $filename = $_SERVER['PHP_SELF']; 
####################################################################################################
  
  
  // Verzeichnis wird geöffnet 
  $verz=opendir($folder_scr); 

  // Ein Array wird erstellt in dem nachher die Dateien gespeichert werden 
  $linkl = array (); 

  while(true == ($file = readdir ($verz))) 
  { 

//Alle Dateien in den Array einlesen
    $jpegtrue = pathinfo($file);
	if($jpegtrue['extension'] == "jpg") 
	{
    //Damit "." und ".." nicht ins Array geschrieben werden, werden sie ausgenommen. 	
	 if($file != "." && $file != ".." && $file != $filename) 
     { 
      array_push ($linkl, "$file"); // Der Dateiname wird in den Array $linkl geschrieben 
	 } 
    }
   } 

  // Anzahl der Dateien im Ordner == Anzahl der Einträge im Array 
  $anzahl =  count($linkl); 

  // Array wird nach Alphabet sortiert 
  sort ($linkl); 


####################################################################################################
/* //Schleife, jedes Bild wird bearbeitet.
//Bilder pro Seite, 4 Spalten, 6 Zeilen
$perpage = 24;
$pages = ceil($anzahl/$perpage);
echo $anzahl." Bilder auf ".$pages." Seiten 
\n";

if(!isset($pagenum) OR ($pagenum == 0) OR empty($pagenum)):$pagenum = 1; endif;
echo $pagenum;

$limitlower = ($pagenum-1) * ($perpage+1);
$limitupper = $limitlower + ($perpage);
echo " ".$limitlower." ";
echo $limitupper;

var_dump($link1);
$pics_page = array_slice($link1, 1, 5); */

var_dump($link1);







  foreach($linkl as $key => $value) 
  { 

  //Thumb schon vorhanden? Wenn nein, wird er erstellt
    if(!file_exists($des_src."/".$value)) 
    { 
      // erstelle ein thumb 
      mkthumb($value, $thumbx, $thumby, $folder_scr, $des_src); 
    } 
  //Ausgabe der Thumbs/Des Arrays: 
  echo "<td>";
  echo "<a href=\"index.php?action=showpic&amp;folder=".$folder_scr."/&amp;pic=".$value."&amp;event=".$fileplace."\">\n";
  echo "[img].$des_src.[/img]</a>\n";
  echo "
".round((filesize($folder_scr."/".$value)/1024),2)."kb";
  $j++;
  echo "</td>";
	$i++;
	if($i > $cols)
	{
	echo "</tr>\n<tr>\n";
	$i = 1;
	}
  } 

  closedir($verz);




####################################################################################################
//Anzahl der Fotos
echo "<tr><th colspan=\"4\"></th></tr>";
echo "<tr><th colspan=\"4\">";
if($j == "1")
{
$foto = "Foto";
} else {
$foto = "Fotos";
}

echo "".$j." ".$foto." vorhanden</th></tr>";
echo "</table>";
####################################################################################################


//Fotoalbum existiert nicht. Fehlermeldung.
} else {
echo "Fotolbum \"".$fileplace."\" nicht vorhanden!";
}


//Achtung, Klammer vom Else-Zweig!!
}


?>
Vielleicht findet da jemand noch was... (Wie bekomme ich den Codeauszug so hin, dass es farbig und übersichtlicher wird?)
 
Alt 25.10.2004, 14:00  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Du solltest dich vielleicht entscheiden, ob die Variable $linkl mit L oder $link1 mit 1 (eins) heisst.
__________________
mod = master of disaster
Waq ist offline  
Alt 25.10.2004, 14:03  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

PS: [php] in bbcode
__________________
mod = master of disaster
Waq ist offline  
Alt 25.10.2004, 14:27  
Gast
 
Beiträge: n/a
Standard

Ok wag, das wars! Tut mir Leid, dass ich dich mit so nem blöden Fehler beschäftigt habe. Jetzt steht im Array auch was drin !! Das es aber auch immer solche bekloppten Sachen sind...
Vielen Dank!!!!
 
Alt 25.10.2004, 14:29  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Setze einfach mal dein Error Reporting Level hoch (in der php.ini
error_reporting = E_ALL oder E_STRICT), dann bekommst du eine Meldung,
wenn du auf nicht deklarierte Vars zugreifst. Damit verkürzt du dir dann
solche Debugging-Sessions.

Nochwas zu miener Anmerkung weiter oben:

Üblicherweise heißt es
Code:
while ($false !== ($entry = readfile($dir)))
...also incl. Datentypenvergleich. Bin grad zu faul, das durchzudenken, aber damit bist du in jedem Fall auf der sicheren Seite.

Basti
Basti ist offline  
 


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
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Soapfault: Undefined Property Argi PHP-Fortgeschrittene 0 28.07.2008 11:17
array richtig sortieren, dann ausgeben Heart PHP Tipps 2006 5 28.04.2006 20:23
In einem Array nach bestimmten Werten suchen PHP-Fortgeschrittene 3 18.02.2006 18:58
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array Ausgabe zu einem bestimmten Datum PHP Tipps 2005 5 01.06.2005 17:15
Array füllen und ausgeben PHP Tipps 2005 6 24.02.2005 14:33
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25
[Erledigt] Array ausgeben PHP Tipps 2004-2 4 05.12.2004 00:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mkthumb php, mkthumb, mkthumb($img_src, function mkthumb variable, php array index, 1 fatal error: call to undefined function mkthumb(), bestimmten teil des arrays ausgeben, var_dump nur bestimmter teil ausgeben, php array nur x stellen ausgeben, php string ersten teil ausgeben, in einen array nur einen bestimmten teil vergleichen php, php array nur ersten teil, mk_thumb php, php array nur bis zu einem bestimmen key, call to undefined function: array() in php, php nur *.jpg in array, php mkthumb, php array nur index ausgaben, php arrays alphabet fehler, php dateien aus ordner ausgeben in array

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:23 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.