2013-12-11 66 views
0

該腳本應該將文件夾中的所有圖片都輸出並將其中前六個輸出到一個表格中。然後,我想添加一個下一個按鈕,以便可以查看剩餘的圖像,但目前該腳本只是將它們全部吐出一行。所有這些,不僅僅是我想要的六個。除此之外,代碼也出現在網頁的底部,在文檔之後的代碼之下。PHP正在一行輸出表格

的PHP

<?php 

$i = 0; 
$directory = 'images/gallery/'; 
$files1 = scandir($directory); 
$x = 0; 
$y = 0; 
$z = 0; 
echo"<table><tr>"; 
foreach ($files1 as $filename) { 
    if ($z == $x + 6) { 
    break 2; 
    } 
    if ($x==1 || $x==0) 
    { 
     $x=$x+1; 
    } 
    else { 
     if ($y == $x + 3) { 
      echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td></tr><tr>"; 
      $y = $x; 
      $x=$x+1; 
     } else { 
      echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td>"; 
      $x = $x+1; 
     } 
    } 
} 
?> 

的HTML

<html> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" > 
    <title>Perspective by Daniel Streich</title> 
    <link rel="stylesheet" type="text/css" href="scripts/css.css"> 
    <link href="css/lightbox.css" rel="stylesheet"> 
    <script src="js/jquery-1.10.2.min.js"></script> 
    <script src="js/lightbox-2.6.min.js"></script> 
    <link href="css/lightbox.css" rel="stylesheet" > 
</head> 
<body> 

    <?php 
    $active = "Art"; 
    include ('menu.php'); 
    ?> 

    <div class="wrapperRegular"> 
     <p class="bigTitle"> 
      Perspective by Daniel 
     </p> 
     <p class='actualText'> 
      TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
      TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
     </p> 
     <?php 
     include ('gallery.php'); 
     ?> 
     <br> 
     <div id="footer"> 
      Copyright &#169; Perspective by Daniel 
     </div> 

    </div> 
</body> 

的CSS

#wrapperRegular { 
margin: auto; 
width: 50%; 
} 
p.bigTitle { 
font-family: 'alluraregular'; 
font-size: 500%; 
text-align: center; 
color: 898888; 
line-height: .33em; 
} 
p.actualText { 
font-family: 'alluraregular'; 
color: 898888; 
font-size: 1.5em; 
} 

table { 
font-family: 'alluraregular'; 
color: 898888; 
font-size: 1.5em; 
margin: auto; 
text-align: center; 
border:5px; 
} 
+0

什麼是** **輸出HTML是什麼樣子? – 2013-12-11 01:27:03

+1

'$ z = 0'和'$ x'只會增加,所以你永遠不會在'$ z == $ $ x + 6'處達到'break'。似乎一個非常複雜的循環只是回聲2行3.只需使用一個不斷增加的計數器並檢查模數運算符。 – jeroen

回答

2

您還沒有關閉<table>標籤在PHP。這意味着<p>正在裏面表中。大多數瀏覽器不同意這種無效的HTML,將非表格元素放在表格的前面,這就是爲什麼表格正在下沉。

關閉你的PHP中的</table>,它應該可以正常工作。

爲什麼不試試這個:

<?php 

$directory = 'images/gallery/'; 
$files1 = scandir($directory); 
$x = 1; 
echo"<table><tr>"; 
foreach ($files1 as $filename) { 
    if ($x <= 6) { 
     if ($x % 3==0) { 
      echo "</tr><tr>"; 
     } 
     echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td>"; 
     $y = $x; 
     $x=$x+1; 
    } else { 
     break; 
    } 
} 
echo"</tr></table>"; 
?> 
+0

也許會增加一個休息,如果x> 6。 – daker

+0

通過代碼判斷,OP希望行數爲3. – jeroen

+0

是的,那就是問題所在,我不得不跳過前兩個元素,因爲scandir會將前兩個條目作爲..然後我有兩個破碎的圖片 – user3089160

0

一個解決方案,使3排,跳過目錄:

$count = 0; 
echo "<table><tr>"; 
foreach ($files1 as $filename) 
{ 
    if (is_file($filename)) 
    { 
    if ($count && ($count % 3 === 0)) 
    { 
     echo "</tr><tr>"; 
    } 

    echo "<td><a data-lightbox='gallery' href='images/gallery/$filename'><img src='images/gallery/$filename'></a></td></tr><tr>"; 

    $count++ 
    if ($count >= 6) 
    { 
     break; 
    } 
    } 
} 
echo "</tr></table>";