PHP小问题 求大神指教!不耽误两分钟时间!

在下面这里重新排下版----分为两个PHP文件============================================1.php<html><body><... 在下面这里重新排下版----

分为两个PHP文件
============================================
1.php
<html>

<body>

<form action="2.php" method="post">
a:<input type="text" size= "10" name="a" /><br>
b:<input type="text" name="b" /><br/>
c:<input type="text" name="c" /><br/>

<input type="submit" name="submit" value="输出结果"/>

</form>

</body>
</html>
============================================
这是第二个PHP文件
============================================
2.php

<html>

<body>

<p>
<?php
$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c"];
$dir = "./image/$a/$b/$c/";
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh))!= false){
$filePath = $dir.$file;
echo "<img src='".$filePath."'/><hr/>";
}
}
closedir($dh);
}
?>

</p>

</body>
</html>

============================================-
localhost/1.php

============================================

============================================
localhost/2.php

============================================

============================================
============================================
输出结果为什么会出现前两个并不存在的路径呢?请问要如何解决?
展开
 我来答
匿名用户
2015-08-17
展开全部
$filePath = $dir.$file;
echo "<img src='".$filePath."'/><hr/>";

改成

if ( !in_array( $file, array('.', '..') ) ) {
 $filePath = $dir.$file;
 echo "<img src='".$filePath."'/><hr/>";
}

 原因是:opendir()函数打开一个存在的目录后, 里面无论是否有文件, 都会返回一个点号和两个点号, 这2个符号分别表示当前目录和上级目录!

 

这个并不是什么不存在的路径。

你需要排除这2个符号!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式