2015-11-19 68 views
0

PHP SCANDIR()。PHP SCANDIR()在谷歌应用程序引擎只返回 '.PHP' 文件谷歌应用引擎

如:

My directory structure 

-- index.php 
-- Readme.txt 
--CSS 
-----abc.css 
-----index.php 
-----a.txt 

但它只返回 '.PHP' 文件

的app.yaml

handlers: 

- url: /(.+\.(css|js|xml|txt)) 
    static_files: \1 
    upload: (.+\.(css|js|xml|txt)) 

- url: /(.*\.(gif|png|jpg|ico|jpeg)) 
    static_files: \1 
    upload: (.*\.(gif|png|jpg|ico|js|css|jpeg)) 

- url:/
    script: index.php 

- url: /(.+\.php)$ 
    script: \1 

- url: /.* 
    script: Error/404.php 



function listFolderFiles($dir){ 
    $ffs = scandir($dir); 
    echo '<ol>'; 
    foreach($ffs as $ff){ 
     if($ff != '.' && $ff != '..'){ 
      echo '<li>'.$ff; 
      if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); 
      echo '</li>'; 
     } 
    } 
    echo '</ol>'; 
} 

listFolderFiles('Main Dir'); 


Output: 
1.CascadingStyleSheets 
    1.index.php 

在本地主机的工作的罚款。即。返回所有文件和文件夹

我该怎么解决呢? 任何解决方案

在此先感谢

回答

1

.yamlstatic file handlers config doc

为了提高效率,App Engine的商店和应用程序文件分开 提供静态文件。静态文件在 应用程序的文件系统中不可用。如果您的数据文件需要通过应用程序代码读取 ,则数据文件必须是应用程序文件,并且 不得与静态文件模式相匹配。

看看下面为application_readable选项:

application_readable

可选。默认情况下,在静态文件处理程序中声明的文件是 作为静态数据上传,仅供最终用户使用,而不能由应用程序读取 。如果此字段设置为true,那么这些文件也会作为代码数据上传,因此您的应用程序可以读取它们。上传的 都会针对您的代码和静态数据存储资源 配额收取费用。

您可能要宣告独立处理程序在你的应用程序需要的静态文件和使用application_readable选择他们。

下面是一个例子(从我的Python应用程序之一):

- url: /buildin.py 
    static_files: scripts/buildin.py 
    upload: scripts/buildin.py 
    application_readable: true 
    secure: always 
+0

谢谢您丹为您详细解释 – user2214646

+0

在部署发生错误。 “意想不到的属性'application_readable'” – user2214646

+0

你有个例子吗? – user2214646