所以我有一个恼人的错误,我的朋友目前没有在线帮助我,所以为什么不问 stackoverflow !
我收到以下错误:
注意:未定义的偏移量:第21行/home1/username/public_html/foldername/v1/screenshots.php中的7
脚本读取文件夹并收集该目录中的文件。那部分有效,但是我确实得到了这个令人烦恼的错误,我无法弄明白。
我认为脚本正在尝试读取不存在的图像。因为我使用了一个分页脚本来回显该目录中的文件。该脚本工作得很好,减去了一个错误,试图读取不存在的文件。无论如何我可以告诉剧本说}其他{echo" Nothing Here ...&#34 ;;可以这么说?以下是我使用的完整代码。
编辑:(从.txt文件中提取)
$filearray = array(); if ($fil = opendir("../uploads/")) {
while (($file = readdir($fil)) !== false) {
if ($file != "." && $file != "..") { $filearray[] = $file;
}
}
closedir($fil);
}
$page = empty($_GET['page']) ? 1 : $_GET['page'];
$num_per_page = 5;
$total_pages = ceil(count($filearray)/$num_per_page);
for($i = ($page - 1) * $num_per_page; $i < $page * $num_per_page; $i++) {
echo "<a href=\"http://www.url.com/uploads/".$filearray[$i]."\"><img src=\"http://www.url.com/uploads/".$filearray[$i]."\" width=\"100\" height=\"100\" /></a>";
}
$pages = array();
for($i = 1; $i <= $total_pages; $i++) {
$pages[] = "<a href=\"".$_SERVER['PHP_SELF']."?page=".$i."\">".$i."</a>";
}
echo "<br />Page: ".implode(" ", $pages);
我无法在表单中粘贴整个代码。任何形式的帮助都会很棒......
答案 0 :(得分:0)
for($i = 1; $i <= $total_pages; $i++)
应该是
for($i = 0; $i < $total_pages; $i++)
在PHP中,数组从0开始编入索引,因此数组$ 7的7个值将具有值$ pages [0],$ pages [1],...,$ pages [6],但不是$页面[7]。
如果从1开始计算(假设$ total_pages为7),那么您将尝试查询$ pages [1],$ pages [2],...,$ pages [6](到目前为止一直这么好),$ pages [7],它将触发错误,因为数组中没有这样的元素。
答案 1 :(得分:0)
您的问题是您正在尝试访问不在阵列中的数组值。当你没有足够的价值时,这很可能是你最后一页造成的 - 即。如果错误为7,则最有可能在第2页上,并且只有6 $filearray
个值。
一个简单的解决方法是检查数组值是否存在
for($i = ($page - 1) * $num_per_page; $i < $page * $num_per_page; $i++) {
if(isset($filearray[$i])){
echo "<a href=\"http://www.url.com/uploads/".$filearray[$i]."\"><img src=\"http://www.url.com/uploads/".$filearray[$i]."\" width=\"100\" height=\"100\" /></a>";
}
}
另一种方法是检查您是否拥有该页面的全部金额,如果没有设置新的最大金额。
$max = ( count($filearray) > ($page * $num_per_page) ) ? $page * $num_per_page : count($filearray); // if size of $filearray is larger than the page*numb_per_page set max to page*numb_per_page else set it to the size of $filearray
for($i = ($page - 1) * $num_per_page; $i < $max; $i++) {
echo "<a href=\"http://www.url.com/uploads/".$filearray[$i]."\"><img src=\"http://www.url.com/uploads/".$filearray[$i]."\" width=\"100\" height=\"100\" /></a>";
}