php globe array,分离目录的第一个文件

时间:2016-12-07 13:23:12

标签: php glob scandir

我正在尝试使用globe()将目录中的.php文件转换为数组。工作良好。 我希望将第一个文件放在一个div中,将所有其他文件放在另一个div中。

    <?php
    $files = glob("kalenderitems/*.php");
    $num_files = count($files);
    $i = 0;
    ?>
    <div class="kal-item-<?php echo $num_files?>-col-left">
    <?php
    foreach (glob("kalenderitems/*.php") as $filename){
    if ($i == 1) {
    ?>
    <div class="kal-item-<?php echo $num_files?> nr-<?php echo $i++ ?> equaliser">
    <?php
    include $filename
    ?>
    </div>
    <?php
    };
    } 
    ?>
    </div>
    <!-- end DIV 1 -->
    <div class="kal-item-<?php echo $num_files?>-col-right">
    <?php
    foreach (glob("kalenderitems/*.php") as $filename){
    if ($i++ > 1) {
     ?>
    <div class="kal-item-<?php echo $num_files?> nr-<?php echo $i++ ?> equaliser">
    <?php
    include $filename
    ?>
    </div>
    <?php
    };
    }    
    ?>
    </div>

数组内容 (glob(“kalenderitems / * .php”))给了我: insert1.php,insert2.php,insert3.php,insert4.php

目标结构

    <div class="col-left">
      <div class="element 1">include (insert1.php)</div>
    </div>
    <div class="col-right">
      <div class="element 2">include a file</div>
      <div class="element 2">include a file</div>
      <div class="element 2">include a file</div>
    </div>    

修改 一个php文件必须包含在div中。提供的解决方案只能构建结构并在其间放置html。

2 个答案:

答案 0 :(得分:1)

请检查内部div,我只是写了它们。

    <?php
    $files = glob("kalenderitems/*.php");
    $num_files = count($files);
    $first_flag = 0;
    $div_1 = "";
    $div_2 = "";
    foreach (glob("kalenderitems/*.php") as $filename)
    {
        if ($first_flag == 0) 
        {

            $div_1 = "<div class='kal-item-$num_files nr-$i++ equaliser'> include $filename </div>";
        }
        else
        {
            $div_2.= "<div class='kal-item-$num_files nr-$i++ equaliser'> include $filename </div>";
        }
        $first_flag = 1;
    }

    ?>

    <div class="kal-item-<?php echo $num_files?>-col-left">
        <?php echo $div_1; ?>
    </div>
    <div class="kal-item-<?php echo $num_files?>-col-right">
        <?php echo $div_2; ?>
    </div>

答案 1 :(得分:1)

我相信你正在寻找array_shift()。它删除并返回数组中的第一个元素,因此这应该实现您的目标:

<?php

$files      = glob("kalenderitems/*.php");
$num_files  = count($files);

?>
<div class="kal-item-<?php echo $num_files; ?>-col-left">
     <div class="kal-item-<?php echo $num_files; ?> nr-1 equaliser">
        <?php include(array_shift($files)); ?>
     </div>
</div>

<!-- end DIV 1 -->
<div class="kal-item-<?php echo $num_files?>-col-right">
    <?php foreach($files as $filename): ?>
        <?php include($filename); ?>
    <?php endforeach; ?>
</div>