在if()echo语句中排列<div>标签

时间:2016-10-28 20:08:02

标签: php html css

我正在尝试打印出php中目录中的文件,一个用于排列一个列表中的文本文件和另一个列表中的jpg文件(在相同的水平高度,并排)。

<!DOCTYPE html>
<html>
<body>
<?php
    $files = scandir('uploads');
    foreach($files as $file){
        $extension = pathinfo($file,PATHINFO_EXTENSION);
        if($extension == 'txt') {
            echo'<div style="text-align:center; margin-left:-120px;"> <br><a href="uploads/'.$file.'">'.$file.'</a></div>';
        }
        if($extension == 'jpg') {
            echo'<div style="text-align:center; margin-right:-120px;"> <br><a href="uploads/'.$file.'">'.$file.'</a></div>';
        }
    }
?>
</body>
</html>

目录中有以下文件:

test.txt hello.txt test.jpg hello.jpg

这给了我输出:(在屏幕中间

          test.jpg

          hello.jpg

test.txt

hello.txt

但我想要这样的东西(在页面中间),其中.txt文件首先出现。

          test.txt   test.jpg

          hello.txt  hello.jpg

我尝试添加`float:left;'的css元素然后将该类添加到div中,但这不能解决问题。

我也尝试使用:display: inline-block;无效

2 个答案:

答案 0 :(得分:1)

你去吧

&#13;
&#13;
div {
  text-align: center;
box-sizing: border-box;
  border: 1px solid black;
  width: 50%;
  float:left;
}
&#13;
<div>
  <ul>
  <li><a href="files/hello.txt">Hello.txt</a></li>
  <li><a href="files/test.txt">Test.txt</a></li>
  </ul>
</div>
<div>
  <ul>
  <li><a href="files/hello.txt">Hello.jpg</a></li>
  <li><a href="files/test.txt">Test.jpg</a></li>
  </ul>
</div>
&#13;
&#13;
&#13;

这是您的PHP代码的修订版,请与示例中提供的CSS一起尝试。

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
        div {
  text-align: center;
box-sizing: border-box;
  border: 1px solid black;
  width: 50%;
  float:left;
}
</style>
</head>
<body>
<?php
    $filetypes = ['txt','jpg']; //with the following code you'll be able to add other fileextensions as you need them
    foreach ($filetypes as $ext) {
     $files = glob('uploads/*.'.$ext.'');
     echo '<div><ul>';
       foreach($files as $file){
            echo'<li><a href="'.$file.'">'.(explode('/',$file)[1]).'</a></li>';
       }
     echo '</ul></div>';
     }
?>
</body>
</html>

答案 1 :(得分:0)

如果要输出特定格式,请先对数据进行排序。例如使你的数据成为一个数组[test.txt,test.jpg,hello.txt,hello.jpg]然后像这样循环:

foreach($data as $key=>$val){
    echo $val;
    if($key%2==0) echo '    ';//here is xx.txt, so you can write your css to make it in the beginning of line
    else echo "\n";// here is xx.jpg, make it clear right or append it a <br>
}