1

我试图制作一个 php 脚本,如果文件夹中存在 .php 扩展名,它会显示检查邮件,如果不存在 .php 文件,则没有邮件,一个或另一个结果都不会显示。

<?php
$directory = "http://server1.bioprotege-inc.net/roleplay_realm_online/contact_us_files/";
if (glob($directory . "*.php") != true) {
echo 'Check Mail:';
}
else {
echo 'No mail Today';
}
?>

我得到的但它不起作用它只显示相同的结果,如果文件夹中有一个 .php 文件或没有

4

2 回答 2

1

glob() 函数返回带有扩展名的文件名数组,因此您无法检查它们的真假。

检查参考站点:php 中的 glob 函数

这就是为什么你应该使用以下代码来检查它:

<?php
$directory = "http://server1.bioprotege-inc.net/roleplay_realm_online/contact_us_files/";

// Open a known directory, and proceed to read its contents
if (is_dir($directory)) {
    $arr = array();
    if ($dh = opendir($directory)) {
        while (($file = readdir($dh)) !== false) {
            $arr[] = $file;
        }
        $name = implode($arr);
        if(strstr($name,".php")){
             echo "Check Mail:";
        } else {
              echo "No mail Today";
        }
        closedir($dh);
    }
}
?>

这将对您有所帮助。但愿如此。

于 2013-02-25T06:06:14.843 回答
1

了解风险,这是可以做到的

$dir="core/view/";

if(glob($dir . "*.php")!=null)
    echo " New Mail";
else
    echo "No Mail";

如果文件少于 100k,则可以使用 glob,否则可能会出现Allowed memory size of XYZ bytes exhausted ... " 错误。

在这种情况下,您可以更改 php.ini 中的设置,也可以使用

readdir()

您可以以这种方式使用 readdir()

if ($handle = opendir('core/view')) {
    $flg=0;
    while (false !== ($entry = readdir($handle))) {
        if(strcasecmp(pathinfo($entry, PATHINFO_EXTENSION),"php")==0){
        $flg=1;
        break;
    }
}
echo $flg;
closedir($handle);
}
于 2013-02-25T06:06:45.087 回答