【问题标题】:Scan directory with PHP and use results in JavaScript使用 PHP 扫描目录并在 JavaScript 中使用结果
【发布时间】:2012-12-06 15:55:22
【问题描述】:

我用 PHP 扫描一个只包含文件夹的目录:

$folders = scandir('gallery');

现在我想检查 javascript 中的字符串是否是此目录中的文件夹。

if(theString == allTheFolders){
     alert('yay');
}

现在$folders 是一个包含字符串的数组。要获取所有字符串,我使用 foreach 循环并忽略 '.' & '..' 目录。但是我怎样才能在 if 循环中获取所有这些文件夹? 希望你能理解我的问题!

【问题讨论】:

  • 您无法将字符串与 PHP 数组进行比较!您只能将字符串与一个文件夹进行比较!
  • @Karen:嗯,是的,我知道。所以这是我的问题! 'allTheFolders' 用于将字符串与所有找到的文件夹进行比较...
  • JS 对客户端是可见的,所以我不知道安全性对你来说是否意味着很大,但是向可能的攻击者显示你的完整文件夹结构对我来说似乎不是一个好主意。 ..
  • @11684: gallery 的文件夹结构可能不是安全必要的;)
  • @11684:我通过上传创建新文件夹。所以我不想为每个新专辑编辑我的javascript。所以我只想扫描图库文件夹以获取所有专辑:)

标签: php javascript jquery scandir


【解决方案1】:

将您的数组作为 JSON 回显到您的 JavaScript 中。

echo 'var folders = ', json_encode($folders);

然后你可以直接在 JavaScript 中循环或做任何你需要的事情。


编辑:现在您已经发布了您的实际问题...在您的 JavaScript 中执行此操作:

var wantedFolder = 'something';
var wantedFolderFound = false;
for (folderIndex in folders) {
    if (folders[folderIndex] === wantedFolder) {
        wantedFolderFound = true;
    }
}
if (wantedFolderFound) {
    alert('Folder found!');
} else {
    alert('Folder not found.');
}

作为替代方案,我可能会使用Array.indexOf()。它并非在所有浏览器中都可用,但该问题很容易解决。请参阅文档:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/indexOf

【讨论】:

  • 太棒了,我有json_encode,但不知道如何将其发送给 JS! +1
  • 好的。我认为, var 文件夹现在是一个数组......嗯。我现在如何在我的 if 循环中插入所有文件夹? :S
  • @dTDesign,您的问题毫无意义。您是否要遍历所有文件夹? developer.mozilla.org/en-US/docs/JavaScript/Reference/…
  • 当我看到它正确时,我现在得到了所有文件夹的数组。现在我的目标是检查我的字符串是否是专辑。所以我必须将它与文件夹数组中的所有结果进行比较。但我不知道该怎么做...
  • 哦,好吧,我认为它不是一个数组。我用谷歌试试...+1 为你的帮助,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-05
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-25
相关资源
最近更新 更多