2013-10-05 94 views
0

我在我的應用程序中使用了glob()函數,它在Google App Engine上託管,我的text_files在Google雲端存儲上。它不起作用並返回false。 下面是代碼:Google App Engine(php):glob()函數

$links = glob("gs://bucket_name/folder/textfile_*"); 
if($links){ 
    echo "true \n"; 
    print_r($links); 
}else{ 
    echo "false"; 
} 

而且我的GCS文件是這樣的:

textfile_Ben.txt 
textfile_Sam.txt 
textfile_David.txt 

我檢查了http://php.net/manual/en/function.glob.php和它說:

注意:該函數將由於要檢測的文件 必須可以通過服務器的文件系統訪問,因此無法在遠程文件上工作。

我的申請與其他功能,如file_get_contents()file_put_contents()工作正常。

問題: 是否有使用​​3210功能的任何溶液或有做同樣的功能性的任何替代的方法?

+1

水珠不會與一個URL工作,只有文件系統路徑。這個答案可能有助於http://stackoverflow.com/questions/6997887/glob-not-giving-me-any-results – abstr

回答

1

使用opendir/readdir並自己篩選路徑。

+0

這是我認爲的唯一方法。唯一的問題是它不適用於子目錄。我只能使用'opendir(「gs:// bucket_name /」)'它不適用於'opendir(「gs:// bucket_name/folder /」)' –

+0

您應該能夠打開一個子文件夾。如果它無法正常工作,您是否可以在跟蹤器中打開一個問題? –

+0

我不知道你的意思是「在跟蹤器中打開一個問題」跟蹤器在哪裏? –

0

我已經得到了解決:)

$folder = "gs://bucket_name/folder"; 
foreach (new DirectoryIterator($folder) as $fileInfo) 
{ 
    echo $fileInfo->getFilename(); 
} 

歡呼