Jump to content
php.lv forumi

Recommended Posts

Posted (edited)

Nu nestrādā tā lieta!

Es pacentos uzrakstīt visu sakarīgi - tāpēc nevajadzētu būt nekādu problēmu ar nesaprašanu. Taču ja tomēr doma nav saprotama - rakstiet!

 

Doma tāda - skripts nolasa visas bildes, kas atrodas direktorijā un savieto tās pa trīs.

Skriptam būtu jāizvada šāds HTML:

(piemērs ar 4 bildēm direktorijā)

 

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

<td width="150px" height="100px"><img src="$pic_patch"></td>

<td width="150px" height="100px"><img src="$pic_patch"></td>

</tr>

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

<td colspan="2"></td>

</tr>

 

 

Respektīvi bildes tiek izdrukāras šādi:

X X X

X - -

 

 

Skripts, kuru ar mokām uzmeistaroju izskatās šādi:

 

if(isset($_REQUEST['show'])){
 $dir = ($_REQUEST['show']);
}else{
$dir ="2003";
}

if ($direktorija = opendir('data/'.$dir)) {
  while (false !== ($faila_nos = readdir($direktorija))) { 
      if ($faila_nos != "." && $faila_nos != ".." && $faila_nos != "comments") { 
         print data($faila_nos, $dir);
      } 
  }
  closedir($direktorija); 
}else{
echo "tehniskas problēmas :(";
}


function data($faila_nos, $dir) { //drukājam HTML
   $pic_patch = 'data/'.$dir.'/'.$faila_nos;

$counter = 0;
echo "<tr>\n";

   if(($counter % 3) == 0){   
   $counter++;
$pic = "<img src=\"$pic_patch\">\n";
   echo "<td width=\"150px\" height=\"100px\">".$pic."</td>\n"; 
echo "</tr>\n";
   }

if(($counter % 3) != 0){
echo "<td colspan=\"".(3 - ($counter % 3))."\"></td>\n"; 
}

echo "</tr>\n";
}
return $data;

 

Problēma tāda, ka sktipts izdrukā invalīdu HTML,

apmēram šādi:

 

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

</tr>

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

</tr>

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

</tr>

<tr>

<td width="150px" height="100px"><img src="$pic_patch"></td>

</tr>

 

Respektīvi, bildes izskatās šādi:

 

X

X

X

X

 

Kur esmu nokļūdījies?

Man liekas, ka $pic_patch ir Array. Vai tad ne?

Edited by Lokomotive
Posted

Esmu ticis skaidrībā tik tālu (nu vismaz man tā šķiet), ka sapratu,

ka count vispār nesaņem Masīvu (kuru tad nu varētu skaitīt)..

 

Ja es saīsinu līdz šādām rindiņām, lai pārbaudītu kas tur vispār ir, tad...

 

function data($faila_nos, $dir) {

 

$pic_path = 'data/foto/'.$dir.'/'.$faila_nos; // šis ir ceļš (path) līdz failam

foreach($pic_path as $test){

print_r ($test);

die;

 

}

 

tad seko Browsera Warnings " Invalid argument supplied for foreach() ".

 

Nevaru saprast kāpēc Invalid arguments !!?

Posted (edited)

Banāls, bet efektīvs veids, kā šito štelli darīt:

$max = 3; //vai cik jau tu kolonnas gribi, šito var $max vietā ierakstīt kodā
$cnt = 0;

$direktorija = opendir("kur_jau_tev_tur");

while (false !== ($file = readdir($direktorija)))  {
if ($file != "." && $file != ".." && $file != ".htaccess") {
  if ($cnt == 0) { echo "<tr>"; }

   echo "<td>"; -- tad te tu gruzī bildi no masīva -- echo "</td>";
   $cnt = $cnt+1;

  if ($cnt == $max) { echo "</tr>"; $cnt = 0; }
} } beidzam ciklu.
 

Pārējo tak pats saķīmiķosi, ne? :)

Edited by Vistu Zaglis
Posted (edited)

Paldies Shulc!

Es gan tevis rakstīto skriptu neizmantoju, taču tikko kā to ieraudzīju - galvā iešāvās doma (tā liktenīgā) :)

Tagad viss strādā. Vainīga bij redze ;]

 

Starp citu, cik ilgi tu veidosi savas lapas jauno dizainu?

Es katru dienu klauvējos pie tavas lapas aizslēgtām durvīm, mhee.

Edited by Lokomotive
×
×
  • Create New...