Jump to content
php.lv forumi

Vai tad tas nav Masīvs?


Lokomotive

Recommended Posts

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
Link to comment
Share on other sites

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 !!?

Link to comment
Share on other sites

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
Link to comment
Share on other sites

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
Link to comment
Share on other sites

×
×
  • Create New...