簡體   English   中英

PHP - 僅顯示目錄和子目錄中的PHP文件

[英]PHP - displaying just PHP files from a directory and sub directories

這是我的第一個使用PHP的項目,現在已經堅持了將近2天! 我想從目錄和任何子目錄中獲取所有PHP文件,並在iframe中顯示它們。 我設法讓它顯示目錄中的所有文件,但我只想要PHP文件,請參閱下文。 在此先感謝您的任何幫助/建議。

<?php
$path[] = 'work/*';

while(count($path) != 0)
{

$v = array_shift($path);
foreach(glob($v) as $item)
{
    if (is_dir($item))
        $path[] = $item . '/*';
    elseif (is_file($item))
    {
         printf(
  "<iframe width=420 height=150 frameborder=0 src='$item'></iframe>",
  ($file),$target);

    }
}
}
?>

work/*模式從work/*更改為work/*.php

簡單...替換$path[] = 'work/*'; with $path[] = 'work/*.php';

你已經在使用glob ,這是最簡單的方法。

更改:

elseif (is_file($item))

elseif (is_file($item) && substr($item, -4) == '.php')

您也可以使用PHP的目錄迭代器,但是以上是使它正常工作所需的全部工作。

嗯,很有趣,這是迭代器方法:

$dir = new RecursiveDirectoryIterator('work');
$iter = new RecursiveIteratorIterator($dir);
$regex = new RegexIterator($iter, '/^.+\.php$/');

foreach($regex as $filename)
{
  // do something with $filename
}

你應該有更好的代碼:)我特意沒有添加iframe所以你可以自己編輯它以獲得更多的經驗:)

<?php
$iterator = new RecursiveDirectoryIterator('work/');

$files_count = 0;

foreach( new RecursiveIteratorIterator($iterator) as $filename => $cur) {
    $file_info = pathinfo($filename);

    if($file_info['extension'] === 'php') {
        $files_count++;
        echo $filename . "<br />";
    }
}

echo "Total: $files_count files<br />";
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM