Помогите с выводом файла

dim-dem

Новичок
Помогите с выводом файла

Фото, для титульной странице должны начинаться с подчеркивания.
Я делаю проверку так:

$image="";
if (is_dir(getenv("DOCUMENT_ROOT")."/sm/".$id)) {
$handle=opendir(getenv("DOCUMENT_ROOT")."/sm/".$id);
while (($file = readdir($handle))!=false) {
if (ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; }
if (!ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; }
}}
?>
<? if ($image<>""){?> <td><?=$image?></td> <?}?>
<? if ($image==""){?> <td>Without title photo</td> <?}?>
<?}

Не получается сделать вывод другого фото из папки /sm/$id, в случае
отсутствия фото с подчеркиванием. Выводится просто первое фото из этой папки,
а подчеркивание вообще игнорируется.
Помогите, плз.
 

Demiurg

Guest
проверка на то, что строка начинается с подчеркивания делается так: $str[0] == '_'
и забудь про регулярные выражения.
 

Demiurg

Guest
>А что, в примере сверху не понятно?
мне понятно.
 

GD

Guest
while (($file = readdir($handle))!=false) {
if (ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; }
if (!ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; }
}

перевожу на русский:
читаем файлы из каталога пока он не кончится (рем. This is the WRONG way to loop over the directory (с) manual)

если имя очередного файла начинается с _ то пихаем его в $image, если не начинается с _ то пихаем его туда же в том же виде...

граждане, а суть то где?
 

dim-dem

Новичок
Автор оригинала: GD
если имя очередного файла начинается с _ то пихаем его в $image?
Здесь все замечательно.

Автор оригинала: GD
если не начинается с _ то пихаем его туда же в том же виде...
А вот именно к этой части и вопрос.

Вся проблема в том, что если даже и есть файл с подчеркиванием, то все равно выводится отфанарный файл.
 

GD

Guest
Тонкий намек:
чтение диры надо прекратить если найден файл начинающийся с _
 

dim-dem

Новичок
Автор оригинала: GD
Тонкий намек:
чтение диры надо прекратить если найден файл начинающийся с _
Но мне нужно вставить какой -либо другой файл из папки, если не найден файл, начинающийся с _
Т.е. по приоритету файл с _ стоит на первом месте.
 

GD

Guest
мдя.... :/

while (($file = readdir($handle))!=false) {
if (ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; break;}
if (!ereg("^\_", $file)) { $image='<img src="/sm/'.$id.'/'.$file">'; }
}
 
Сверху