
17.03.2016, 14:26
|
|
Постоянный
Регистрация: 31.12.2011
Сообщений: 362
Провел на форуме: 137056
Репутация:
11
|
|
Почему-то на винде в всо не выполняется такой код:
Код:
error_reporting(E_ALL);
//$startDir = str_replace('\\', '/', $_SERVER['DOCUMENT_ROOT']);
$startDir = str_replace('\\', '/', dirname(__FILE__));
//$startDir = 'C:/xampp/htdocs';
echo $startDir;
$starSearch = substr($startDir, 0, strpos($startDir,'/')+1);
$dirs_parts = explode('/', $startDir);
print_r($dirs_parts);
//exit();
//echo $starSearch."\n";
$currDir = $starSearch;
$i = 1;
$k = 0;
$max_iter = 255;
$flag = true;
do {
if ($k >= $max_iter){
break;
}
echo $currDir."\n";
//sleep(1);
$cd = $currDir;
$ds = scandir($cd);
print_r($ds);
$currDir = rtrim($currDir,'/');
if($currDir == $startDir ){
$flag = false;
break;
}
$currDir .= '/';
$currDir .= $dirs_parts[$i];
$i++;
$k++;
} while ( $flag );
Довольно странно, если закомментить print_r($ds);то он вроде выполняется. Шелл у меня не оригинальный а какой-то обфусцированный. Но что вообще может мешать исполнению? Причем это происходит когда в пути есть конкретная папка, у меня это /addons/test.ru. Когда нужно прочитать папку addons скрипт перестает работать. В чем может быть дело?
upd: Вроде бы нашел причину - если в именах файлов есть кириллические символы, то ничего выводиться не будет. Осталось только понять как решить.
|
|
|