الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

البحث داخل ملف نصى ولكن بشكل اصعب شوية

بدأه mancoeg في 17 فبراير 2008 · 4 رد · 793 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

كلى ثقة بالله انى سأجد من يساعدنى فى عمل هذا

باختصار لدر مجلد اسمه company_departments

بداخل هذا المجلد عدد 2 ملفات نصيه اسمائها على النحو التالى

manager.text

employee.txt

وبالطبع داخل كل ملف نصى كلمة او جملة فى كل سطر على سبيل المثال هكذا

manager.text

ahmed

ali

.....

والملف الثانى

employee.txt

kareem

waleed

....................

المطلوب عند البحث عن اسم من الاسماء السابقة

اظهار جملة تفيد ان هذا الاسم موجود ام لا

واذا كان موجودا فيتم اظهار اسم الملف

شكرا واتمنى ان اكون اوضحت ما اريد

ومنتظر الرد

#2

السلام عليكم

جرب استخدام الكود التالي

ولو عندك اي سؤال بخصوصه اتفضل

ملاحظه .. قم بتغيير مسار المجلد

<?Php
   $currentdir="c:/xampp/htdocs/new";    
   $dir=opendir($currentdir);
   $myword='search';
   $file=readdir($dir);
   $i=-1;

   if ($file==false)
     echo "not files";

  else {
      while (($file=readdir($dir))!== false) {
         if ($file != "." && $file != "..") {
          $file=$currentdir .'/' . $file;
          $fp=fopen($file,"r")or exit("Unable to open file!");
          $flag=false;
         while ( (!feof($fp)) && ($flag==false) ){
           $word=fgets($fp);
           if (trim($word) ==$myword){
             $i++;
             $flag=true;
             $result[$i]=$file;
          }
        }
        fclose($fp);       
      } 
    }
  }
   closedir($dir);
    if ($flag) {
      echo 'Found In Files :'.'';
      $count=count($result);
      for($i=0;$i<$count;$i++)
      echo $result[$i].'<Br>';
   }
    else
     echo 'Not Found';
?>

I Say Nothing

#3
mana80 كتب:

السلام عليكم

جرب استخدام الكود التالي

ولو عندك اي سؤال بخصوصه اتفضل

ملاحظه .. قم بتغيير مسار المجلد

<?Php
   $currentdir="c:/xampp/htdocs/new";    
   $dir=opendir($currentdir);
   $myword='search';
   $file=readdir($dir);
   $i=-1;

   if ($file==false)
     echo "not files";

  else {
      while (($file=readdir($dir))!== false) {
         if ($file != "." && $file != "..") {
          $file=$currentdir .'/' . $file;
          $fp=fopen($file,"r")or exit("Unable to open file!");
          $flag=false;
         while ( (!feof($fp)) && ($flag==false) ){
           $word=fgets($fp);
           if (trim($word) ==$myword){
             $i++;
             $flag=true;
             $result[$i]=$file;
          }
        }
        fclose($fp);       
      } 
    }
  }
   closedir($dir);
    if ($flag) {
      echo 'Found In Files :'.'';
      $count=count($result);
      for($i=0;$i<$count;$i++)
      echo $result[$i].'<Br>';
   }
    else
     echo 'Not Found';
?>

السلام عليكم ورحمة الله وبركاته

اولا شكرا على اهتمامك

ثانيا

جربت الكود وعدلت ما يلزم وبالفعل اشتغل معايا

لكن لم يعمل كما اريد

فقد قام بتكرار اسماء ملفات التيكست فايل

وهذا ما لا اريده

فكل ما اريده ان يتم عرض اسم التيكست فايل الذى يوجد به كلمة البحث

#4

السلام عليكم

قمت بتجربة الكود مرة اخرى ولايوجد اي تكرار للملفات

اي ملف وجد في كلمة المراد البحث عنها

يحتفظ باسمه داخل المصفوفة ويخرج من شرط while لان قيمة المتغير flag اصبحت تساوي true.

..وهكذا الى ان يننتهي من جميع الملفات .الشئ الوحيد الذي قم بتغييره هو شرط التحقق من المصفوفة بها قيم مخزنة

قم بتتغيره الى الجزء التالي

if ($i>-1) {

echo 'Found In Files :'.'<Br>';

$count=count($result);

for($i=0;$i<$count;$i++)

echo $result[$i].'<Br>';

}

else

echo 'Not Found';

قم بتجربته مره اخرى وتأكد من الخطوات المكتوبة

ولو مازالت المشكله موجوده اكتب الكود الذي قمت بعمله لنرى المشكلة

I Say Nothing

#5

شكرا شغاله تمام

جزاك الله كل خير

تم تعديل هذه المشاركة بواسطة mancoeg في 25 فبراير 2008 في 17:37

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…