note 120301 deleted from function.opendir by cmb
| From: | cmb@php.net | Date: | Thu, 08 Dec 2016 12:24:51 +0000 |
| Subject: | note 120301 deleted from function.opendir by cmb | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-208282@lists.php.net to get a copy of this message | ||
Note Submitter: oleg000_som at mail dot ru
----
Ðногда нÑжно оÑÑоÑÑиÑоваÑÑ
ÑпиÑок: диÑекÑоÑии, поÑом
ÑайлÑ.
Ðе Ð·Ð½Ð°Ñ ÐºÐ°Ðº по поÑÑеблениÑ
памÑÑи и вÑемени, но Ð²Ð¾Ñ ÐºÐ°Ðº Ñ
ÑеÑил даннÑÑ Ð·Ð°Ð´Ð°ÑÑ:
function GetDir($get_dir = null){
if ($get_dir !== null and $get_dir!=='/'){
$gd = $get_dir;
}
else{
$gd = '';
}
$d = $_SERVER['DOCUMENT_ROOT'].'/'.$gd;
$dh = opendir($d);
while (false !== ($filename = readdir($dh))){
if($filename !== '.' and $filename !== '..'){
if (is_dir($d.'/'.$filename.'/')){
$dirs[] = $filename;
}
else{
$f[] = $filename;
}
}
}
closedir($dh);
if (!isset($dirs) or count($dirs)==0){
$dirs = array();
}
if (isset($f) and count($f)>0){
$dirs = array_merge($dirs, $f); /* sorting: dirs, then files*/
}
return $dirs;
}
PS: когда пÑовеÑÑл is_dir($filename)
некоÑоÑÑе диÑекÑоÑии
поÑемÑ-Ñо в маÑÑив $f кидало,
поÑÑÐ¾Ð¼Ñ is_dir($d.'/'.$filename.'/') - Ñак
ноÑмалÑно. СейÑÐ°Ñ Ð¸ÑполÑзÑÑ
denwer Ñ php 5.3.3. Ð document_root знаÑение,
напÑимеÑ, Ñакое 'W:/home/example/www'
PS2: $get_dir в моем ÑлÑÑае Ñ Ð¿Ð¾Ð»ÑÑаÑ
ÑеÑез $_GET[] и Ð¼Ð¾Ð³Ñ Ð¿ÑиÑлаÑÑ Ñебе
'/' (возвÑÐ°Ñ Ðº коÑневой
диÑекÑоÑии ÑайÑа),
'диÑекÑоÑиÑ' или
'диÑекÑоÑиÑ/диÑекÑоÑиÑ2'