php目录文件
1. 一个完整的php网站,服务器目录下一般分为哪些文件夹与文件呢
这个没有统一的强制的要求,你想怎么规划都可以。一般会有
inc/ 放通用的,每个页面头要require的文件
script/ 放一些js文件
Style/ 放样式表
images/ 放图片
admin/ 后台管理页面
等等。。
各人有各人的做法,不过建议不要按常用的来,这样如果要来猜你的目录结构就比较难猜到。
2. PHP列出目录中的目录和文件的几种方法
<?php
/**
*PHP中列出目录中的目录和文件的几种方法
*/
//兼容PHP4和PHP5的写法
functiongetFileList($directory){
$files=array();
if(is_dir($directory)){
if($dh=opendir($directory)){
while(($file=readdir($dh))!==false){
if($file!='.'&&$file!='..'){
$files[]=$file;
}
}
closedir($dh);
}
}
return$files;
}
//PHP5中的简单方法
functiongetFileList2($directory){
$files=array();
if(is_dir($directory)){
if($files=scandir($directory)){
$files=array_slice($files,2);
}
}
return$files;
}
//使用PHP5面向对象的写法
functiongetFileList3($directory){
$files=array();
try{
$dir=newDirectoryIterator($directory);
}catch(Exception$e){
thrownewException($directory.'isnotreadable');
}
foreach($diras$file){
if($file->isDot())continue;
$files[]=$file->getFileName();
}
return$files;
}
//测试代码
$dir=dirname(__FILE__);
var_mp(getFileList($dir));
?>
3. PHP如何 运行其他目录的PHP文件
php去运行其他目录的php文件只要直接包含那个文件就运行了,方式主要有下面内几种:
require 'xxx.php';
require_once 'xxx.php';
include 'xxx.php';
include_once 'xxx.php';
扩展:
如果是容用命令行去运行php文件,可以使用在php安装目录下的bin目录里面的php.exe命令去运行,用这种方法运行php的一般是用作定时计划任务。
4. php如何实现包含一个目录下的所有文件
经查阅相关资料,貌似没有直接包含目录的,但这个功能实现应该比较简单,自己写个读取目录下文件列表,再逐个写入就可以了。
5. php复制目录下的所有文件及文件夹
这个直接用下面这个函数就可以了,多看下手册,很多例子的啊。
function recurse_($src,$dst) { // 原目录,复制到的目录
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
recurse_($src . '/' . $file,$dst . '/' . $file);
}
else {
($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
6. php 读取目录和文件
如果不知道子目录的命名和个数,则需要先遍历子目录
opendir,readdir,closedir等即可
或者使用类dir,具体参考参见PHP说明文档
http://cn.php.net/manual/en/ref.dir.php
下面是一段示例代码:
$dirhandle = opendir("../prodocs");
while(($file = readdir($dirhandle)) != NULL)
{
if(is_dir("../prodocs/$file"))
{
continue;
}
.........
}
closedir($dirhandle);
读取文件,根据上面的遍历结果和指定的文件名即可开始读取文件内容
具体函数和C标准函数是类似的
fopen,fclose,fseek,fread,fwrite等
这是一段示例代码(来自PHP文档):
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
7. php中怎样获取目录中文件的个数
$a = scandir(这里写文件夹的地址);
返回的$a为数组,求出里面的个数减去回2即可。
其中有答个是 . 有个是.. 所以要减去2
<?php
$dir = '/tmp';
$files1 = scandir($dir);
$files2 = scandir($dir, 1);
print_r($files1);
print_r($files2);
/* Outputs something like:
Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)
Array
(
[0] => somedir
[1] => foo.txt
[2] => bar.php
[3] => ..
[4] => .
)
*/
?>
8. PHP如何读出当前目录下所有文件
一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
复制代码 代码如下:$dir="./caxa/";
$file=scandir($dir);
print_r($file);
稍微复杂点的,来自于php手册:
复制代码 代码如下:$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
} closedir($dh);
}
}
这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:
复制代码 代码如下:function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
function getDir($dir){
$data=array();
searchDir($dir,$data);
return $data;
}
print_r(getDir('.'));
希望本文所述对大家的PHP程序设计有所帮助。
9. PHP 列出当前目录下所有文件(自身别列出来)
<?php
$d=dir(".");
echo $d->path.$e;
while(false !== ($e= $d->read())) {
echo "<a href=$e target=_blank >$e</a>"."<br>";
}
$d->close();
?>
10. PHP读取目录下所有文件内容并显示
<?php
function printFile($filepath)
{
//substr(string,start,length)函数返回字符串的一部分;start规定在字符串的何处开始 ;length规定要返回的字符串长度。默认是直到字符串的结尾。
//strripos(string,find,start)查找 "php" 在字符串中最后一次出现的位置; find为规定要查找的字符;start可选。规定开始搜索的位置
//读取文件后缀名
//$filetype = substr ( $filename, strripos ( $filename, "." ) + 1 );
//判断是不是以txt结尾并且是文件
#if ($filetype == "txt" && is_file ( $filepath . "/" . $filename ))
if ( is_file ( $filepath))
{
$filename=iconv("gb2312","utf-8",$filepath);
echo $filename."内容如下:"."<br/>";
$fp = fopen ( $filepath, "r" );//打开文件
#while (! feof ( $f )) //一直输出直到文件结尾
$i = 1;
while ($i < 10)
{
$line = fgets ( $fp );
echo $line."<br/>";
$i = $i +1;
}
fclose($fp);
}
}
(此处空一行)
function readFileRecursive($filepath)
{
if (is_dir ( $filepath )) //判断是不是目录
{
$dirhandle = opendir ( $filepath );//打开文件夹的句柄
if ($dirhandle)
{
//判断是不是有子文件或者文件夹
while ( ($filename = readdir ( $dirhandle ))!= false )
{
if ($filename == "." or $filename == "..")
{
//echo "目录为“.”或“..”"."<br/>";
continue;
}
//判断是否为目录,如果为目录递归调用函数,否则直接读取打印文件
if(is_dir ($filepath . "/" . $filename ))
{
readFileRecursive($filepath . "/" . $filename);
}
else
{
//打印文件
printFile($filepath . "/" . $filename);
echo "<br/>";
}
}
closedir ( $dirhandle );
}
}
else
{
printFile($filepath . "/" . $filename);
return;
}
}
(此处空一行)
header("content-type:text/html;charset=utf-8");
#echo "Hello World"."<br/>";
$filepath = "C:/phpStudy/PHPTutorial/WWW/test/results"; //想要读取的目录
readFileRecursive($filepath )
?>
(10)php目录文件扩展阅读:
php还可以读取文件夹下所有图片,方法如下
hostdir=dirname(__FILE__).'/data/upload/admin/20170517/'; //要读取的文件夹
(此处空一行)
$url = '/data/upload/admin/20170517/'; //图片所存在的目录
(此处空一行)
$filesnames = scandir($hostdir); //得到所有的文件
(此处空一行)
// print_r($filesnames);exit;
//获取也就是扫描文件夹内的文件及文件夹名存入数组 $filesnames
(此处空一行)
$www = 'http://www.***.com/'; //域名
(此处空一行)
foreach ($filesnames as $name) {
$aurl= "<img width='100' height='100' src='".$www.$url.$name."' alt = '".$name."'>"; //图片
echo $aurl . "<br/>"; //输出他