Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Fatal error: Cannot redeclare scandir()
 
 автор: pavloff.D   (17.08.2006 в 07:29)   письмо автору
 
 

Посмотрите на код и скажите пожалуйста, где может быть ошибка. При запуске выдается такая ошибка: Fatal error: Cannot redeclare scandir() in e:\program files\apache group\Apache\htdocs\xps\modules\xcgal\admin\searchnew.php on line 315
Это только часть скрипта.

_____________________________________________________________________________

/**
* scandir()
*
* recursive function that scan a directory, create the HTML code for each
* picture and add new pictures in an array
*
* @param $dir the directory to be scanned
* @param $expic_array the array that contains pictures already in DB
* @param $newpic_array the array that contains new pictures found
* @return
**/
function scandir($dir, &$expic_array)
{
static $dir_id = 0;
static $count =0;
static $pic_id=0;

$pic_array = array();
$dir_array = array();

getfoldercontent($dir, $dir_array, $pic_array, $expic_array );


if (count($pic_array) > 0){
$dir_id_str=sprintf("d%04d", $dir_id++);
echo dirheader($dir, $dir_id_str);
foreach ($pic_array as $picture) {
$count++;
$pic_id_str=sprintf("i%04d", $pic_id++);
echo picrow($dir.$picture, $pic_id_str, $dir_id_str );
}
}
if (count($dir_array) > 0){
foreach ($dir_array as $directory) {
scandir($dir.$directory.'/', $expic_array);
}
}
return $count;
}

______________________________________________________________________________

Спосибо...

   
 
 автор: cheops   (17.08.2006 в 12:17)   письмо автору
 
   для: pavloff.D   (17.08.2006 в 07:29)
 

Так бывает, если файл, где объявлена функция scandir() несколько раз включить в другой файл при помощи конструкции include() или require(), включение может быть не явным, например, один раз вы включаете явно, а другой раз включаете в состве другого include-файла, который ранее включил этот файл. Возникает конфликт, чтобы его избежать следует использовать для подключения файлов с объявлениями функций директивы include_once() и require_once(), которые включают файл только один раз, сколько бы вызовов в тектсте программы не было.

   
 
 автор: ec_stasis   (17.08.2006 в 15:35)   письмо автору
 
   для: pavloff.D   (17.08.2006 в 07:29)
 

Если у тебя ПХП5, то функция с таким названием уже есть в самом ПХП, что, собственно, и вызывет ошибку, т.к. не может быть 2-х функций с одинаковым названием, как не может в одной директории двух файлов с одинаковым названием.
http://lv.php.net/manual/ru/function.scandir.php
Выход - переименовать функцию (твою :)).

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования