PHP函数is_writeable非常奇怪的行为。

我写的PHP代码如下:testfile.php

<?php
    $writeok = array("uploads/", "cache/", "templates_c/", "mainfile.php");
    $title = "test file php";
    $content = "<table align='center'><tr><td align='left'>/n";
    $error = false;
    foreach ($writeok as $wok) {
            echo "<br />"."../".$wok."<br />";
          echo fileowner("../".$wok)."<br />";
          echo filegroup("../".$wok)."<br />";
      echo fileowner("../".$wok)."<br />";
      echo substr(sprintf('%o', fileperms("../".$wok)), -4)."<br />";
          echo filetype("../".$wok)."<br />";
          
        if (!is_dir("../".$wok)) {

          
            if ( file_exists("../".$wok) ) {
        @chgrp("../".$wok, fileowner("../".$wok));
                @chmod("../".$wok, 0666);
                if (is_writeable("../".$wok)==false) {
                    $content .= "file ".$wok." is not writeable"."<br />";
                    $error = true;
                  
                }else{
                    $content .=  "file ".$wok."  is  writeable"."<br />";
                }
                if (!is_readable("../".$wok)) {
                    $content .= "file ".$wok."  is not readable"."<br />";
                    $error = true;
                  
                }else{
                    $content .=  "file ".$wok."  is  readable"."<br />";
                }
               
            }
        } else {
      @chgrp("../".$wok, fileowner("../".$wok));
            @chmod("../".$wok, 0777);
            if (!is_writeable("../".$wok)) {
                $content .=  "dir ".$wok." is not writeable"."<br />";
                $error = true;
               
            }else{
                $content .=   "dir ".$wok."is writeable"."<br />";
            }
            if (!is_readable("../".$wok)) {
                $content .= "dir ".$wok." is not readable"."<br />";
                $error = true;
                  
            }else{
                    $content .=  "dir ".$wok." is  readable"."<br />";
            }           
        }
    }
    $content .= "</td></tr></table>/n";

    if(! $error) {
        $content .= "<p>"."not error"."</p>";
       
       
    }else{
        $content .= "<p>"." error "."</p>";
       
    }

    echo $content;

    ?>

 

可是执行结果非常奇怪:

../uploads/
0
0
0
0777
dir

../cache/
0
0
0
0777
dir

../templates_c/
0
0
0
0777
dir

../mainfile.php
0
0
0
0666
file

dir uploads/ is not writeable
dir uploads/ is readable
dir cache/ is not writeable
dir cache/ is readable
dir templates_c/ is not writeable
dir templates_c/ is readable
file mainfile.php is not writeable
file mainfile.php is readable

error

 到底是什么原因?

你可能感兴趣的:(PHP,File,table,templates)