您好我可能有一个非常愚蠢的问题。
我所拥有的是编写json文件的代码,在文件名中它会自动添加到递增数字的变量中。我想制作打开文件的代码并将数据写入网页。打开filename(1)(1).json
的文件有效,但不会打开其他文件。
这是创建文件的代码。
$Array = array("User Index" => $UniqueIndex,"User Name" => $UniqueUserName,"Submition Index" => $SubmitionCount,"Time & Date" => $TimeDate,"Submition" => $_POST["submition"]);
$ArrayWrite = fopen("forumdata/forumsubmition/ForumSubmition($UniqueIndex)($SubmitionCount).json", "w");
fwrite($ArrayWrite, json_encode($Array));
fclose($ArrayWrite);
这是尝试打开文件的代码。
for ($Count = 0; $Count <= $blarg; $Count += 1)
for ($Count2 =0; $Count2 <= $blarg2; $Count2 += 1)
if (file_exists("forumdata/forumsubmition/ForumSubmition($Count2)($Count).json"))
{
do
{
$ForumInfo = file_get_contents("forumdata/forumsubmition/ForumSubmition($Count2)($Count).json", "r");
$ForumInfo2 = json_decode($ForumInfo, true);
if ($ForumInfo2["Submition"] != null)
foreach($ForumInfo2 as $value)
echo "$value<br>";
}
while (file_exists($ForumInfo));
}
答案 0 :(得分:0)
为什么当你有2个Do While
循环遍历文件时,你甚至会有for
循环?
就这样做:
for ($count = 0; $count <= $blarg; $count += 1)
for ($count2 =0; $count2 <= $blarg2; $count2 += 1)
if (file_exists("forumdata/forumsubmition/ForumSubmition($count2)($count).json"))
{
$forumInfo = file_get_contents("forumdata/forumsubmition/ForumSubmition($count2)($count).json", "r");
$formattedForumInfo = json_decode($forumInfo, true);
if ($formattedForumInfo["Submition"] != null)
foreach($formattedForumInfo as $value)
echo "$value<br>";
}
我还将你的变量格式化为驼峰,而不是pascal。
你不应该使用do ... while循环的原因是因为你已经有了第二个for循环来遍历所有$blarg2
计数。然后你有一个if
结构来检查文件是否存在。那应该够了。无需再次检查。因为如果它不存在,它只会跳过它并进入第二个for
循环中的下一个计数。