проверка на наличие и вывод файлов. непойму где ошибка

кекс

Guest
проверка на наличие и вывод файлов. непойму где ошибка

PHP:
$value="1.php";
if ($handle = opendir('dir')){ 
while (false !== ($file = readdir($handle))){ 
if (is_dir($file)) continue; 
$f_arr[] = $file;
$result = array_search ($value, $f_arr); 
} closedir($handle); 
if ($result){ 
include "dir/$value";
} else {
echo "нет файла";
}
}
где ошибка?
 

Solid

Drosera anglica
Как-то давно написал маленький snippet на php.net... его модифицировали... так вот, его можно ещё раз модифицировать и получить что-то вроде:
PHP:
<?
$file = 'config.php';
$files = read_dir('C:\\');

$flag = false;
foreach($files as $ent) {
	if(substr($ent, -(strlen($file)))==$file) {
		$flag = true;
	}
}

if($flag) {
	echo 'exist';
} else {
	echo 'not found';
}

function read_dir($dir) {
   $array = array();
   $d = dir($dir);
   while (false !== ($entry = $d->read())) {
       if($entry!='.' && $entry!='..') {
		$entry = $dir.'/'.$entry;
           if(is_dir($entry)) {
               $array = array_merge($array, read_dir($entry));
           } else {
               $array[] = $entry;
           }
       }
   }
   $d->close();
   return $array;
}
?>
 

кекс

Guest
пути не исправили и дебаг включен.. ничего не выводит..
пользуюсь денвером. хотя вряд ли там ошибка может быть
пишет на выводе просто напросто "нет файла".
 

кекс

Guest
Автор оригинала: chisto_tolyan
http://phpfaq.ru/debug -> Отладка и поиск ошибок в своем алгоритме.
не ну я хоть не очень понимаю в PHP так сказать учусь еще, но как включить отладку и поиск ошибок знаю.
ini_set('display_errors',1);
error_reporting(E_ALL);
ничем не помогли. и error.log пустой.
 

chisto_tolyan

Враг народа
я тебе говорю не вывод ошибок включить, а прочитать про отладку алгоритма
 

кекс

Guest
прочитал, перепробовал с выводом, нашел одну но она к теме не имеет отношения!
$result = array_search ($value, $f_arr);
у меня не там , опустил ниже, все что я нашел. не мучайте, подскажите.
 

ksnk

прохожий
кекс
а это файл там случайно не один?
Если в каталоге есть другой файл - поищи и его. Если случайно найдешь - почитай про [m]array_search[/m] и возвращаемое им значение.
 

кекс

Guest
я читал array_search .. ничерта не вкуриваю похоже... толкните меня в чем проблема-то...

ну да.. их там несколько.. типа если есть файл выводить его если нет, то пусто.. ничего не выводить.. это что бы ошибки не выскакивали типа нет файла в директории...
я не знаю. может есть какие другие способы, но на мой взгляд так проще чем мучаться..
 

кекс

Guest
if ( array_search($value,$f_arr) == true ){

нда уж...

-~{}~ 16.03.06 21:03:

ну да.. а мой вариант то же прокатывает..

-~{}~ 16.03.06 21:04:

тему можно считать закрытой...
всем спасибо кто помог..
а кто флудил, спать бы дома на диване:)
 

ksnk

прохожий
кекс
Посмотри пожалуйста ВНИМАТЕЛЬНО на ссылку, которую я дал и ответь себе на вопрос - почему я написал в своем совете
$result!==FALSE
а не
$result===TRUE
и почему используется именно такая функция сравнения...
P.S
Твой вариант - неправильный
 

кекс

Guest
спасибо, метод тщательной проверки показал. не правильный... сейчас буду смотреть почему...

-~{}~ 16.03.06 22:25:

ниче не понимаю.. что значит тождественно неравно... неправильному...
это чтоль типа совсем прямо должно совпасть тютелька в тютельку?:) прям как лилипуты ......цца:)
 

Solid

Drosera anglica
Я уже ответ ему написал... они ещё чего-то тут расфуфенивают. Эх, больше никогда ничего просто так не буду делать. Пошло всё.
 

кекс

Guest
Solid
спасибо:) но в вашем методе слишком много кода:)
 
Сверху