النتائج 1 إلى 6 من 6

الموضوع: scandir

  1. #1
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    450

    scandir



    السلام عليكم .. لدى استفسار ...
    - كيف استطيع عمل اكثر من ereg فى نفس الدالة , مثال :
    اريد عمل تنقية للملفات ذات الامتداد .zip و .rar و .htm من مجموعة ملفات تقراها الدالة scandir





    التعديل الأخير تم بواسطة dewan159 ; 05-03-2008 الساعة 12:40 PM


  2. #2
    عضو جديد
    تاريخ التسجيل
    Feb 2008
    المشاركات
    3

    Smile scanDirectories function



    السلام عليكم

    جرب

    كود PHP:
    <?php
    // function print all files in dir and all subdir with ext
    function scanDirectories($rootDir$allowext$allData=array()) {
        
    $dirContent scandir($rootDir);
        foreach(
    $dirContent as $key => $content) {
            
    $path $rootDir.'/'.$content;
            
    $ext substr($contentstrrpos($content'.') + 1);
            
            if(
    in_array($ext$allowext)) {
                if(
    is_file($path) && is_readable($path)) {
                    
    $allData[] = $path;
                }elseif(
    is_dir($path) && is_readable($path)) {
                    
    $allData scanDirectories($path$allData);
                }
            }
        }
        return 
    $allData;
    }

    $rootDir "dirname";
    $allowext = array("zip","rar","html");  //  add all ext you want here 
    $files_array scanDirectories($rootDir,$allowext);
    print_r($files_array);  // will print array with full path of your files with ext you enter
    ?>






    التعديل الأخير تم بواسطة egyptdev ; 05-03-2008 الساعة 02:07 PM سبب آخر: miss
    __________________
    Egypt Dev co
    Web Solutions
    admin@egyptdev.net

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    512

    folder_options



    أخي . هناك class قمت بكتابته لهدف مشابه أرجو أن يفيدك..

    كود PHP:
    class folder_options{
        
        public static 
    $response;
        private static 
    $continue;
        
        
    /**
         * listing with limited file deletion
         * @param target dir name $dir
         * @param bool $is_file
         * @param array $patterns ex. array('dat','zip','jpg')   >>>----> enter patterns without the (dot)
         * @author Mohamed Wahed (Mr_m)
         * @return array() deleted files
         */
        
    public static function remove($dir,$patterns=null,$is_file=false){
            
    self::$response 'idle';
            
    $affected = array();
            if(
    is_file($dir) && file_exists($dir)){
                if(
    is_file($dir)){
                    
    self::$response = (unlink($dir)) ? true false;
                }
                
    $affected[] = $dir;
                return 
    $dir;
            }
            
    $data self::folder2array($dir);
            if(
    is_array($patterns)){
                foreach(
    $patterns as $ext){
                    foreach(
    $data as $file){
                        if(!
    is_dir($file)){
                            if(
    eregi($ext."$",$file)){
                                if(!@
    unlink($file)){
                                    
    self::$response false;
                                }else{
                                    
    $affected[] = $file;
                                    
    self::$response true;
                                }
                            }
                        }
                    }
                }
            }else{
                foreach(
    $data as $file){
                    if(!
    is_dir($file)){
                        if(!@
    unlink($file)){
                            
    self::$response false;
                        }else{
                            
    $affected[] = $file;
                            
    self::$response true;
                        }
                    }
                }
            }
            return 
    $affected;
        }    
        
    /**
         * returns array with all contents (unlimited levels)
         * @param dir $dir
         * @return array() dirs contents
         */
        
    public static function folder2array($dir){
            
    $data[0] = $dir;
            
    $dirs = array();
            
    self::$continue true;
            while(
    self::$continue != false){
                foreach(
    $data as $key => $file){
                    
    clearstatcache();
                    
    $read self::read($file);
                    if(
    $read !== false){
                        foreach(
    $read as $val){
                            if(
    is_dir($val)) array_push($dirs,$file);
                            
    array_push($data,$val);
                        }
                        unset(
    $data[$key]);
                    }
                }
                
    $data self::search($data);
            }
            foreach(
    $dirs as $dirarray_push($data,$dir);
            return 
    $data;
        }    
        
        private static function 
    search($data){
            
    clearstatcache();
            
    $pass false;
            foreach(
    $data as $dir){
                if(
    is_dir($dir)) $pass true;
            }
            
    self::$continue = ($pass === true) ? true false;
            return 
    $data;
        }    
        
        private static function 
    read($dir){
            
    clearstatcache();
            if(!
    is_dir($dir)) return false;
            
    $output = array();
            if(
    $handle opendir($dir)){
                while(
    false !== ($file readdir($handle))){
                    if(
    $file != "." && $file != ".."$output[] = $dir.'/'.$file;
                }
                
    closedir($handle);
            }else return 
    false;
            return 
    $output;
        }    

    ضع الكود السابق في ملف و سميه folder_options.php

    و للاستخدام اتبع التالي:

    = لحذف مجموعة من الملفات مع التقيد بامتدادات معينة
    كود PHP:
    include("folder_options.php");
    $deleted folder_options::remove('اسم المجلد',array('zip','jpg','dat'));
    if(
    folder_options::$response === true){
        echo 
    "deleted ".count($deleted)."items<br />";
        
    print_r($deleted);

    و يكتب الامتداد بدون سبقه بالنقطة dot . و بدون سبق اسم المجلد أو انهائهه بالسلاش / .

    = لحذف جميع ما بداخل المجلد من ملفات استعمل
    كود PHP:
    $deleted folder_options::remove('اسم المجلد بدون سبقه أو انهائه بالسلاش');
    if(
    folder_options::$response === true){
        echo 
    "deleted ".count($deleted)."items<br />";
        
    print_r($deleted);

    = لارجاع محتويات المجلد + محتويات المجلدات المندرجة تحته (بدون حذف) استعمل
    كود PHP:
    $contents folder_options::folder2array(".");
    print_r($contents); 
    الكود السابق سوف يستعرض المحتويات ابتداء من المجلد الحالي


    لكم تحياتي






  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    450

    شكرا



    مشكورين جميعا ... حقا ..
    ولكن الامر ابسط ... انا فقط اريد شئ من هذا القبيل ..
    كود PHP:
    $flist scandir(dir);
    for (
    $i=2$i count($flist); $i++) {
    if(
    ereg(".htm",$flist[$i])){
    echo 
    $flist[$i];
    }

    ولكن اريد ان اضيف .. امتدادات اخرى .. اعتقد ان الموضوع يعتمد على البارامترات الخاصة بالدالة ..؟






  5. #5
    عضو شرف
    تاريخ التسجيل
    May 2007
    المشاركات
    1,647


    مشكورين جميعا ... حقا ..
    ولكن الامر ابسط ... انا فقط اريد شئ من هذا القبيل ..
    كود PHP:
    $flist scandir(dir);
    for (
    $i=2$i count($flist); $i++) {
    if(
    ereg(".htm",$flist[$i])){
    echo 
    $flist[$i];
    }

    ولكن اريد ان اضيف .. امتدادات اخرى .. اعتقد ان الموضوع يعتمد على البارامترات الخاصة بالدالة ..؟
    هل تعديل هذا:
    كود PHP:
    if(ereg(".htm",$flist[$i])){ 
    إلى هذا:
    كود PHP:
    if(preg_match('/\.(htm|php)$/i'$flist[$i])) { 
    هو المطلوب؟!






  6. #6
    عضو نشيط جدا
    تاريخ التسجيل
    Jan 2008
    المشاركات
    450


    نعم اخى اشرف , هذا ما اقصده .. شكرا










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض