PHP检查文件名

PHP检查文件名,php,filenames,file-exists,Php,Filenames,File Exists,我创建了一个简单的PHP脚本,它读取.txt文件(1.txt、2.txt等,其中每个文件都包含伪文本:“Test~Test”),并生成每个文件内容的html输出,带有一些html格式 <html> <head> <style type="text/css"> body {background-color: #80B2FF; font-family: arial,sans-serif;} .content {backgro

我创建了一个简单的PHP脚本,它读取.txt文件(1.txt、2.txt等,其中每个文件都包含伪文本:“Test~Test”),并生成每个文件内容的html输出,带有一些html格式

<html>
<head>
    <style type="text/css">
        body {background-color: #80B2FF; font-family: arial,sans-serif;}
        .content {background-color: #ffffff; margin: 35px auto; max-width: 75%; padding: 35px;}
    </style>
</head>
<body>
<?php
for ($number = 3; $number>=1; $number--){
    $article = $number.".txt";
    $data = file_get_contents($article); //read the file
    $convert = explode("~", $data); //create array separate by new line
    echo '<div class="content">'.$convert[0].'<br/><br/>'; //write value by index 0
    echo $convert[1].'<br/><br/>'.'</div>'; //write value by index 0
}
?>
</body>
</html>

正文{背景色:#80B2FF;字体系列:arial,无衬线;}
.content{背景色:#ffffff;边距:35px自动;最大宽度:75%;填充:35px;}
这目前效果不错。问题是,如果要创建文件4.txt,我必须将$number变量硬编码为4

我已尝试自动将$number初始化为最高的number.txt。我需要帮助创建一个循环,该循环将使用file_exists()函数测试文件x.txt是否存在,如果存在,则增加x并再次测试。如果它不存在,循环应该会中断,因此我可以说$number=x

我希望这个解释足够清楚,谢谢您的时间。

使用
glob()
,您的方法非常糟糕:


您要做的是
$arr=glob(“*.txt”)然后循环遍历该数组。

首先,使用数据库。这要容易得多。其次,如果您热衷于使用此方法,可以查看使用
glob()
从目录中获取文件列表,并使用该列表确定要读取哪些文件。编写使用
file\u的循环存在什么问题?这看起来很琐碎?只是要注意一个警告的全球。。。默认情况下,它会按名称对文件进行排序,但排序方式不合理。例如,1.txt、10.txt、2.txt、3.txt。要解决此问题,请使用natsort($arr);然后,如果您的顺序很重要,那么这就是所有UNIX工具对文件进行排序的方式,与PHP的
glob()
函数无关。像这样对文件进行排序也是非常有意义的,IMHO,因为这就是排序的工作原理…@Ruttersmoker我知道,我只是简单地指出,这个答案返回的结果与OP代码中的顺序不匹配,因此需要进行一些修改。事实上,再看一遍,他需要做array_reverse(natsort($arr))!!谢谢,现在一切都完全按照我的预期运行,更新的PHP: