Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από _Invisible_ » 25 Δεκ 2006 11:31

Γεια σας.

Θέλω να δημιουργήσω μικρογραφίες κατά την προβολή της σελίδας και ταυτοχρόνως θέλω να δημιουργήσω έναν πίνακα που θα εμφανίζει τις φωτογραφίες εκεί, και θα τις χωρίζει σε κατηγορίες.

Για παράδειγμα το παρακάτω function:

Κώδικας: Επιλογή όλων

function display_pictures()
{
	
	if ( logged_in() )
	{
		$dir = "uploads/pictures/";	
	
	$path = $dir;
	$file_types = array('jpeg', 'jpg', 'png', 'gif', 'bmp');
	$p = opendir($path);
   
       while (false !== ($filename = readdir($p)))
	   {
           $files[] = $filename;
       }
   
  		 sort($files);
		 
		  $msg = '<table width="100%" border="1"><tr>';
					
			foreach &#40;$files as $file&#41;
	 	  	&#123;
     	      $extension = file_type&#40;$file&#41;;

			   if&#40;$file != '.' && $file != '..' && array_search&#40;$extension, $file_types&#41;&#41;
			   &#123;
	              $msg .= '<td><a href="'.$path.$file.'">'.$file.'</a></td>';
				&#125;
		   &#125;
	 &#125;
	 $msg .= '</tr></table>';
 return $msg;
&#125;
το παραπάνω function κοιτάει σε έναν κατάλογο (uploads/pics/) και βλέπει αν υπάρχουν αρχεία με επέκταση jpeg, jpg, png, gif και bmp. Θα ήθελα να μου πείτε πως στο παραπάνω function μπορώ να βάλω κάτι που θα δημιουργεί μικρογραφίες των φωτογραφιών που εντοπίζει μέσα στον φάκελο που διάβασε.

Επίσης όπως βλέπετε έχω βάλει και ένα table (ο Θεός να το κάνει!), που έχει 3 στήλες. Όταν όμως υπάρχουν πολλές φωτογραφίες μέσα στον φάκελο τότε έχει μόνο μία γραμμή, με 40 link για τις φωτογραφίες.

Πως μπορώ να τροποποιήσω τον κώδικα ώστε να το κάνω να εμφανίζει σε μία γραμμή μόνο 3 φωτογραφίες και μετά να δημιουργεί άλλη γραμμή;

Ευχαριστώ πολύ!

Άβαταρ μέλους
tix-3-
Δημοσιεύσεις: 827
Εγγραφή: 25 Μαρ 2004 05:12
Τοποθεσία: Θεσσαλονικη-Καβαλα-βεροια(το τριγωνο της καταρας)
Επικοινωνία:

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από tix-3- » 25 Δεκ 2006 13:11

για δημιουργια thumbs κοιτα εδω.

Για να το σπας σε γραμμες θα βαλεις εναν μετρητη στην while που θα μετραει και ενα if πριν απο την while αν ειναι ==3 θα αλλαζεις γραμμη και θα τον μηδενιζεις


Πι.ες. Δεν νομιζω να ειναι σωστο να δημιουργεις δυναμικα μικρογραφιες ειδικα οταν ειναι πολλες φωτογραφιες αλλα αυτο καλυτερα να μας το πει καποιος που το εχει δοκιμασει
Πι.ες.2 Κωδικα δεν γραφω γιατι απλα δεν ακουμπαω ξενο κωδικα χριστουγενιατικα (η πολλη ρετσινα βλεπεις... :pint: :pint: :pint: :pint: :kaloe: :kaloe: )

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από ThyClub » 25 Δεκ 2006 14:06

Καλύτερα οι μικρογραφίες να γίνονται κάθε φορά που μια εικόνα "ανεβαίνει" στον σέρβερ. Αν ο φάκελος περιέχει καμία 200ρια φωτογραφίες είναι πολύ πιθανό να χτυπίσει η PHP

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από fafos » 25 Δεκ 2006 14:52

Gia ta rows kai ta cells dokimase auto:

Κώδικας: Επιλογή όλων

function display_pictures&#40;&#41;
&#123;
   
   if &#40; logged_in&#40;&#41; &#41;
   &#123;
      $dir = "uploads/pictures/";   
   
   $path = $dir;
   $file_types = array&#40;'jpeg', 'jpg', 'png', 'gif', 'bmp'&#41;;
   $p = opendir&#40;$path&#41;;
   
       while &#40;false !== &#40;$filename = readdir&#40;$p&#41;&#41;&#41;
      &#123;
           $files&#91;&#93; = $filename;
       &#125;
   
         sort&#40;$files&#41;;
    // atithmos cells kai rows 
$tmp_cnt = 0;
$per_row =3;  
        $msg  .= '<table width="100%" border="1"><tr>';
        $msg  .=       &#40;&#40;$tmp_cnt %$per_row == 0&#41; ? '<tr>' &#58; ''&#41;.
' <td width="25%" align="left" valign="top">'; 
         foreach &#40;$files as $file&#41;
            &#123;
              $extension = file_type&#40;$file&#41;;

            if&#40;$file != '.' && $file != '..' && array_search&#40;$extension, $file_types&#41;&#41;
            &#123;
                 $msg .= '<a href="'.$path.$file.'">'.$file.'</a>';
$msg .= '</td>'
.&#40;&#40;++$tmp_cnt %$per_row == 0&#41; ? '</tr>' &#58; ''&#41;;
            &#125;
         &#125;
    &#125;
    $msg .= &#40;$tmp_cnt %$per_row !== 0&#41;
? '<td colspan="' .&#40;$per_row - &#40;$tmp_cnt % $per_row&#41;&#41;. '">&nbsp;</td></tr>'
&#58; ''; 
    $msg .= '</tr></table>';
 return $msg;
&#125; 
Auto tha sta vazei ana 3.. analoga allazeis ta $tmp_cnt = 0; kai $per_row =3;
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από _Invisible_ » 25 Δεκ 2006 15:05

Thanks guys! Όλες οι συμβουλές σας είναι πολύ σημαντικές και σας ευχαριστώ για τον χρόνο που αφιερώσατε. :wink:

@fafos: Σε ευχαριστώ πολύ για τον κώδικά σου, δεν θα μπορούσα να το βρω μόνος μου αυτό γιατί είναι πολύ περίπλοκο για μένα (τουλάχιστον έτσι μου φαίνεται)...

Θα σε πείραζε να μου πεις ακριβώς τι έκανες;

Ευχαριστώ πολύ!

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από fafos » 25 Δεκ 2006 15:32

_Invisible_ έγραψε:Thanks guys! Όλες οι συμβουλές σας είναι πολύ σημαντικές και σας ευχαριστώ για τον χρόνο που αφιερώσατε. :wink:

@fafos: Σε ευχαριστώ πολύ για τον κώδικά σου, δεν θα μπορούσα να το βρω μόνος μου αυτό γιατί είναι πολύ περίπλοκο για μένα (τουλάχιστον έτσι μου φαίνεται)...

Θα σε πείραζε να μου πεις ακριβώς τι έκανες;

Ευχαριστώ πολύ!
Ksekino me to arxiko <tr> pou xreiazrete to table ( ((($tmp_cnt %$per_row == 0) ? '<tr>' : ''). )
Se kathe item pou vriskei to while dino kai to cell eos to tria ($msg .= '</td>' ).. an ta items einai pano apo 3 tou prostheto ena <tr> ( .((++$tmp_cnt %$per_row == 0) ? '</tr>' : ''); ) kai meta ksekina pali apo thn arxh gia ta epomena tria..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Άβαταρ μέλους
_Invisible_
Δημοσιεύσεις: 418
Εγγραφή: 16 Νοέμ 2006 16:47
Τοποθεσία: Greece

Κάτι δύσκολο [δημιουργία μικρογραφίας και πίνακα]

Δημοσίευση από _Invisible_ » 25 Δεκ 2006 15:51

thanks man τα κατάλαβα! Ευχαριστώ πολύ!

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες