Я прочитал на многих форумах об удалении амперсанда (&) перед любым $, указанным в переменной, и я это сделал, но при этом удаляется функциональность кода, который я использую. Что мне делать?
Демо здесь .
Код здесь:
<?php $val = $_GET['name']; $path = "./images/".$val."/"; $file_array = array (); readThisDir ( $path, &$file_array ); echo '<div class="gallery" style="display:block;" id="'.$val.'">'; echo '<ul>'; foreach ( $file_array as $file ) { if (strstr($file, "png")||strstr($file, "jpg")||strstr($file, "bmp")||strstr($file, "gif")) { list($width, $height) = getimagesize($file); $info = exif_read_data($file); echo '<li><a href="javascript:void(0);"><img src="'.$file.'" width="'.$width.'" height="'.$height.'" alt="'.$file.'"/></a><span>'.$info['Title'].'<div class="gallerynav"><a href="javascript:void(0);" class="prevproject">«</a><a href="javascript:void(0);" class="nextproject">»</a></div></span></li>'; } } echo '</ul>'; echo '</div>'; function readThisDir ( $path, $arr ) { if ($handle = opendir($path)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if (is_dir ( $path."/".$file )) { readThisDir ($path."/".$file, &$arr); } else { $arr[] = $path."/".$file; } } } closedir($handle); } } ?>
Вы должны помечать пропущенную ссылку в объявлении функции, а не там, где вызывается функция.
... function readThisDir ( $path, &$arr ) { ...