منتدى شباب و شابات حطان
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

منتدى شباب و شابات حطان


 
الرئيسيةاخبارأحدث الصورالتسجيلدخول
دخول
اسم العضو:
كلمة السر:
ادخلني بشكل آلي عند زيارتي مرة اخرى: 
:: لقد نسيت كلمة السر
بحـث
 
 

نتائج البحث
 
Rechercher بحث متقدم
المواضيع الأخيرة
» جديددددددددددددددددددددددد
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء مايو 18, 2011 9:49 am من طرف ysf

» mawdou3 sakhin
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالسبت يوليو 31, 2010 7:50 am من طرف hayfa

» برنامج الفوتوشوب السابع Adobe PhotoShop® 7.0
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء فبراير 03, 2010 7:28 am من طرف fathalahe

» منتدي فتح الله الجديد
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء فبراير 03, 2010 7:04 am من طرف fathalahe

» القرآن الكريم كاملا بصوت القارئ (( مشاري العفاسي))
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء ديسمبر 16, 2009 4:44 am من طرف المحارب الصعب

» برنامج للمحافظة علي النظر عند استعمال الكمبيوتر
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالإثنين نوفمبر 30, 2009 12:25 pm من طرف شعبوي

» تصميم رائع مني
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالجمعة نوفمبر 27, 2009 1:41 pm من طرف شعبوي

» الأساتذة وتلاميذتهم
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء نوفمبر 25, 2009 4:12 am من طرف nana

» تصحيح مسابقة فكر و أجب
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالسبت نوفمبر 21, 2009 4:22 am من طرف ayoub lahlou

أفضل 10 أعضاء في هذا المنتدى
fat7alahe
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
عيون مالك
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
nana
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
3achi9
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
ayoub lahlou
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
ahelam
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
hicham
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
ana_akon
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
المحارب الصعب
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
Mimo
الدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_rcapالدرس التاسع عشر : التعامل مع الملفات والمجلدات Voting_barالدرس التاسع عشر : التعامل مع الملفات والمجلدات Vote_lcap 
ازرار التصفُّح
 البوابة
 الصفحة الرئيسية
 قائمة الاعضاء
 البيانات الشخصية
 س .و .ج
 ابحـث
احصائيات
هذا المنتدى يتوفر على 49 عُضو.
آخر عُضو مُسجل هو عبد الرفيع عدلان فمرحباً به.

أعضاؤنا قدموا 2173 مساهمة في هذا المنتدى في 631 موضوع
المتواجدون الآن ؟
ككل هناك 2 عُضو متصل حالياً :: 0 عضو مُسجل, 0 عُضو مُختفي و 2 زائر

لا أحد

أكبر عدد للأعضاء المتواجدين في هذا المنتدى في نفس الوقت كان 238 بتاريخ الإثنين أكتوبر 28, 2024 9:23 pm
تسجيل صفحاتك المفضلة في مواقع خارجية
تسجيل صفحاتك المفضلة في مواقع خارجية reddit      

قم بحفض و مشاطرة الرابط منتدي رمضان كريم على موقع حفض الصفحات

قم بحفض و مشاطرة الرابط منتدى شباب و شابات حطان على موقع حفض الصفحات
سحابة الكلمات الدلالية

 

 الدرس التاسع عشر : التعامل مع الملفات والمجلدات

اذهب الى الأسفل 
2 مشترك
كاتب الموضوعرسالة
fat7alahe
المدير العام
المدير العام
fat7alahe


ذكر

عدد المساهمات : 608
نقاط : 3996
السٌّمعَة : 0
تاريخ التسجيل : 30/08/2009
العمر : 30
الموقع : المغرب
المزاج المزاج : رايق

الدرس التاسع عشر : التعامل مع الملفات والمجلدات Empty
مُساهمةموضوع: الدرس التاسع عشر : التعامل مع الملفات والمجلدات   الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء سبتمبر 30, 2009 11:57 am

التعامل مع الملفات والمجلدات

كل مبرمج يجب أن يتعامل مع الملفات والمجلدات في بعض النقاط ، برنامجك سوف
يستخدم الملفات لكي يقوم بتخزين معلومات الإعداد للسكربت ، أو يقوم بتخزين
البيانات لقراءتها وكتابتها ، أو لكي يقوم بحفظ البيانات المؤقتة ، وكمثال
فإن أتفه برنامج عداد يحتاج إلي ملف يقوم بتخزين آخر رقم تم الوصول إليه ..



الملف : ليس عبارة عن أكثر من بايتات متسلسلة يتم تخزينها على القرص الصلب أو أي ماده تخزينية أخرى .

والمجلد : هو عبارة عن نوع محدد من الملفات يحتفظ بأسماء ملفات أخري
ومجلدات أخري ( تسمي بالمجلدات الفرعية ) ، كل ما تحتاجه لتتعامل مع
الملفات والمجلدات هو كيف يمكنك ربط سكربتك بهم ..



هذا الدرس سيأخذك إلي جولة لتعلم التعامل مع الملفات والمجلدات وفي نفس
الوقت يوفر لك مرجعية لبعض الدوال التي تساعدك في ذلك مما يجعل مهمتك أسهل
...



سيقوم هذا الدرس بتغطيه المواضيع التالية :



1 فتح وإغلاق الملف .

2 القراءة من الملف والكتابة إليه .

3 مسح وإعادة تسمية الملفات

4 استعراض وتجول في الملف .

5 فتح وإغلاق المجلدات .

6 نسح وإعادة تسميه المجلدات .



ملاحظة :

قبل أن نبدأ دعنا ننبهك أن التعامل مع الملفات يختلف من نظام تشغيل إلي
آخر ففي أنظمة اليونكس تستخدم المسارات العلامة المائلة للأمام

مثال

/home/usr/bin/data.txt

بينما في الويندوز فإن المسار يكون كالتالى

C:\usr\bin\perl

وإذا استخدمنا العلامة الأمامية في PHP للويندوز فإنه يقوم بتحويلها بشكل
تلقائي إلي علامة خلفية بينما إذا أردنا استخدام العلامة الأمامية فإننا
يجب أن نقوم بتكرار العلامة لكي يتم التعرف عليها

C:\\windows\\PHP



التعامل مع الملفات

يوفر الـPHP نوعين من الدوال المتعلقة بالملفات فهناك نوع من الدوال
يستخدم مقبض للملف (file handle) أو ما يسمونه بالمؤشر (pointer) في
العادة ، بينما بعض الدوال يستخدم قيمه حرفيه تشير إلي موضع الملف مباشره
...



مقبض الملف ليس أكثر من عدد صحيح (integer) يقوم بتعريف الملف المراد فتحه
حتي يتم إغلاقه ، إذا كان هناك أكثر من ملف مفتوح فان لكل ملف مقبضه
التعريفي الخاص به ، وبالطبع فإنه لا يتوجب عليك معرفه هذا الرقم ....



على سبيل المثال فإن الدالة fwrite() تقوم بفتح الملف لكتابة بيانات إليه وهي تستخدم مقبض لكي تقوم بالتعرف إلي الملف وفتحه ..

Fwrite ($fp,’Hello World’);

بينما الدالة file() التي تستخدم للقراءة من الملف تقوم باستخدام قيمة
نصية تقوم بالإشارة إلى مكان الملف بشكل مباشر لكي يتم التعامل معه ..



لا تصب بالرعب والخوف من هذا الكلام فأنا أعلم أنه قد يكون غامضاً عليك ..
تنفس الصعداء وجهز لنفسك كأساً من الشاي لأننا سنبدأ في الجد الآن ....



ملاحظة : ستجد أن اغلب الدوال أو معظمها أو كلها تقريبا تقوم بإرجاع
القيمة True إذا تمت بنجاح والقيمة False إذا فشلت في الحصول على هدفها ..

لنبدأ الآن مع سكربتات مبسطة للعمل مع الملفات ..



فتح واغلاق الملفات



Fopen

تستخدم هذه الدالة ثلاث عوامل هي مسار الملف (path) والوضع له ( للقراءة ،
للكتابة .....) بالاضافة إلى مسار الـInclude فيه وتقوم هذه الدالة بإرجاع
مقبض للملف ...



قد تواجهنا مشاكل أحيانا فقد يكون الملف غير منشأ أو أننا لا نملك صلاحيات
عليه ولذلك فإنه يمكننا اختبار القيمة التي ترجعها هذه الدالة فإذا كانت
القيمة صفر فهذا معناه أن الدالة فشلت في إرجاع مقبض الملف أو نوعه ، أما
إذا كانت القيمة هي واحد فهذا معناه أن الدالة قد نجحت في فتح الملف



مثال

$fp=fopen (“./data.txt”, “r”);

if (!$fp) die (“فشل في قراءه الملف تأكد من التراخيص ومن مسار الملف”);

يمكننا كتابة المثال أيضا بالشكل التالي :

If (!($fp=fopen (“./data.txt”, “r”))) die (“لا يمكن القراءة من الملف”);





لاحظ أننا قلنا سابقاً أن هناك دوال تستخدم للتعامل مع الملفات تستخدم
مقبض وهذا المقبض هو عبارة عن رقم ، في مثالنا هذا يتحدد رقم المقبض الذي
هو المتغير $fp الذي يخزن فيه مكان الملف وما إذا كان قابلاً للفتح أو لا
أو يعمل أو لا يعمل ، والنتيجة التي تتخزن في المتغير $fp هي رقم مثلما
قلنا سابقاً وهو صفر إذا كان الملف لا يعمل أو واحد إذا تم فتح الملف
بنجاح ..



الآن دعنا نناقش معاملات الدالة fopen الذي تقوم بإعطائنا رقم المقبض ..



أول معامل هو مسار الملف على القرص الصلب



لنفرض أن لديك مجلدا قمت بإنشائه في مجلد السكربتات الرئيسي لديك الذي يسمى htdocs وأسميته data



ولنفرض أن سكربتك يستخدم ملفين :

1- ملف للقراءة والكتابة يسمي data.txt .

2- وملف يقوم بعرض المدخلات والإضافة إليها اسمه script.txt .



حسنا لدينا الآن ثلاث حالات للسكربت



الحالة الأولى :

أن يكون الملفين في نفس المجلد (data) وعند ذلك يمكنك فتح الملف الذي تريد فتحه بذكر اسمه فقط من غير إضافات

$fp=fopen (“data.txt”, “r”);



الحالة الثانية:

أن يكون هناك مجلد في نفس مجلد الـdata باسم آخر ولنقل أن هذا الاسم هو gb
وفيه ملف data.txt على ذلك فإننا نكتب المسار المطلق لهذا المجلد كالتالي
:

$fp=fopen (“./gb/data.txt”, “r”);



الحالة الثالثة :

أن يكون الملف الذي تريد قراءته موجود في المجلد htdocs بينما السكربت
موجود في المجلد data الموجود داخل htdocs على ذلك نكتب المسار النسبي
كالتالي

$fp=fopen (“../data.txt”, “r”);

لاحظ النقطه التي تسبق العلامة الأمامية جيدا..

أتمني أن تكون فهمت من هذا الكلام ما هو المقصود بالمسار المطلق والمسار النسبي ..

يمكننا أيضا وضع رابط صفحة في موقع آخر ولكننا لن نستطيع الكتابة عليه بل قراءته فقط



مثال :



If (!($fp=fopen (“http://www.swalif.net/softs/index.php”, “r”))) die (“لا يمكن القراءة من الملف”);



ينقصنا نقطه يجب أن نتكلم عنها وهي عند تحديد العامل use_include_path



العامل الثاني الذي نستخدمه للملفات هو حاله الملف



( للقراءة ، للكتابة ، للإضافة إليه) يحدد وضعية الملف حال فتحه إذا كان
للقراءة فقط أو للكتابة فقط أو للاثنين معاً أو للإضافة ، وأرتبها هنا في
جدول بسيط ..



الوصف
القيمة

تفتح الملف للقراءة فقط ويكون المؤشر في بداية الملف
r

يفتح الملف للقراءة والكتابة ويضع المؤشر في بداية الملف
r+

يفتح الملف للقراءة فقط ، أي بيانات موجودة سيتم مسحها ، إذا لم يكن الملف موجودا سيحاول PHP إنشاؤه
w

يفتح الملف للقراءة والكتابة ، أي بيانات موجودة سيتم مسحها ، إذا لم يكن الملف موجودا سيحاول PHP إنشاؤه
w+

يفتح الملف للإضافة فقط ، إذا لم يكن الملف موجودا سيحاول PHP إنشاؤه ، سيكون المؤشر في نهاية الملف
a

يفتح الملف للقراءة و للإضافة ، إذا لم يكن الملف موجودا سيحاول PHP إنشاؤه ، سيكون المؤشر في نهاية الملف
a+

يستخدم لفتح وقراءه ملفات الصور على نظام أو سيرفرات الويندوز فقط .. أما
الينوكس فالعوامل السابقه تتعامل مع ملفات الصور بشكل عادي ..
b




هناك مؤشر للملفات يحدد إذا ما كنت ستكتب من نهاية أو بداية الملف أو حتى
من وسطه أو من أي مكان بالملف ، ستعرف كيفية التحكم بهذا المؤشر بعد قليل .



العامل الثالث هو تحديد use_include_path



فإذا قمت بتحديد قيمته إلي (1) وقمت بكتابة اسم الملف مباشرة فسيبحث
الـPHP عن الملف في نفس المجلد الموجود به السكربت ثم سيقوم بالبحث عن
الملف في المجلدات التي تم تحديدها في المتغير use_include_path في ملف
php.ini








مثال :

$fp=fopen (“./data.txt”, “r”,1);



fclose

عندما تنتهي من التعامل مع الملف ، تحتاج إلى إغلاقه لكي يتم حفظ
التعديلات عليه ، إذا تم إحباط سكربتك لأي سبب أو أن السكربت انتهي عمله
فإن الـPHP يقوم بإغلاق جميع الملفات تلقائيا

تقوم الدالة fclose() بإغلاق الملف عندما تريد إغلاقه وهي تحتاج إلي معامل واحد فقط وهو مقبض الملف الذي تريد إغلاقه

مثال :

Fclose ($fp) ;



قراءه وكتابه الملفات



لقد تعرفنا الآن كيفية فتح وإغلاق الملف ، لنقم الآن بالتعرف علي كيفية قراءة و كتابة البيانات من الملف ،



Fread

تقوم هذه الدالة بقراءة واستخراج البيانات الموجودة في الملفات ووضعها
بمتغير وهي تأخذ معاملين المعامل الأول هو مقبض الملف والعدد الثاني هو
عدد الحروف المراد قراءتها ..

مثال :

$fp=fopen("data.txt","r");

$data=fread($fp,10);

وخذ باعتبارك نقطتين وهما :

1- إذا مثلاً قرأت عشر حروف من الملف وكان في الملف عشرين حرف وقمت بطلب
الدالة fread مره أخري فسيتم قراءة العشر أحرف الثانية ..

2- إذا كان في الملف أقل من عشر أحرف فسيتم قراءة الموجود .



Fwrite

تقوم هذه الدالة بالكتابة إلى الملف وتحتاج إلى عاملين وهي مقبض الملف
والقيمة المراد كتابتها إلى الملف ، فعلى افتراض أنك قد فتحت الملف
والمقبض هو $fp فإننا نكتب الكلمة PHP إلى الملف بالطريقة التالية :



Fwrite ($fp, "PHP");

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

Fwrite ($fp, "PHP",1);

فسوف يتم كتابه أول حرف فقط ...





قراءة وكتابة الحروف في الملفات



Fgetc

تستخدم هذه الدالة لقراءة حرف واحد من الملف في كل مرة ، وهي تستخدم معاملاً واحداً وهو مقبض الملف

وتقوم بإرجاع حرف واحد من الملف أو (False) عند الوصول إلى نهاية الملف ..



Feof

تقوم هذه الدالة بخدمتنا في هدف بسيط وشي ممتاز وهي معرفة إذا ما كنا قد
وصلنا إلى نهاية الملف عند قراءته وتقوم بإرجاع (true) عند الوصول إلى
نهاية الملف أو حصول خطأ ما ، وهي تأخذ معاملاً واحد وهو مقبض الملف .

فقد تكون مثلاً تريد أن تتأكد أن المؤشر لم يصل إلي نهاية الملف بعد
استخدامك لأحد الدوال التي تقوم بنقل المؤشر من مكان إلي آخر ، عند ذلك
ستكون هذه الدالة مفيدة لتخبرك إذا ما وصلت إلى نهاية الملف أو لا ...





تطبيق عملي :

قم بإنشاء ملف سمه file.txt واكتب فيه أكثر من سطر ثم قم بإنشاء ملف PHP
وسمه بأي اسم وضع فيه الشفرة التالية ثم اختبره ، لكي ترى عمل الدالتين

<?

$fp= fopen("file.txt","r");

While (!feof($fp))

{

$char=fgetc($fp);

echo $char;

} ?>



Fgets

إذا استخدمنا الدالة fgetc لقراءة الملفات الطويلة فإنها ستأخذ وقتاً
وعمراً حتى يتم قراءتها ، يقوم الـPHP بتوفير دالة fgets لتساعدنا في
قراءة عدد محدد من البايتات وهي تأخذ معاملين ، المعامل الأول هو مقبض
الملف والمعامل الثاني هو عدد الحروف المراد قراءتها +1 ، فإذا مثلا أردت
قراءة ملف يتكون من خمس حروف فسيكون المعامل الثاني للدالة هو الرقم 6
وتتوقف الدالة عند حدوث أحد من ثلاث حالات

الأول : هو إذا تم قراءة عدد البايتات المحدد ة

الثاني : إذا تم الوصول إلى نهاية سطر في الملف .

الثالث : إذا وصلت إلى نهاية الملف .

مثال :

$fd = fopen ("/tmp/inputfile.txt", "r");

while (!feof ($fd)) {

$buffer = fgets($fd, 4096);

echo $buffer;

}

fclose ($fd);



Fputs

تقوم بنفس وظيفة الداله fwrite وتأخذ نفس معاملاتها ونفس طريقتها ..



القراءة داخل الملفات



File

تحتاج هذه الدالة إلى معامل واحد هو مسار الملف ولا تحتاج إلي مقبض ،
وعملها هو قراءة ما بداخل الملف وتخزينه سطراً سطراً في مصفوفة حيث أن هذه
المصفوفة تقوم بأخذ كل سطر في الملف كأنه عنصر لوحده وتظل السطور سطورا
(أي أن المصفوفة تحتفظ بالمعامل للسطر الجديد (\n) بداخلها ) ، هذه الدالة
لا تحتاج إلي مقبض للملف بل تحتاج إلى مسار الملف فقط ، وهي تقوم بفتح
وقراءة وإغلاق الملف تلقائيا ...

وكغيرها من الدوال فإنها تستطيع قراءة صفحات الإنترنت الخارجية ..

مع ذلك يستحسن أن لا تقوم باستعمال هذه الدالة لقراءة الملفات الطويلة
لأنها تقوم باستخدام قدر كبير من الذاكرة المحجوزة للـ PHP وقد تستخدمها
كلها ...

مثال :

<?

$fcontents = file ('file.txt');

while (list ($line_num, $line) = each ($fcontents)) {

echo "<b>Line $line_num:</b> $line <br>\n";

}

?>



Fpassthru

تقوم هذه الدالة بقراءة محتويات الملف بداية من النقطة التي توقف منها
المؤشر الوهمي عند أي عملية قراءه أخرى ، وتقوم بالتوقف عند نهاية الملف
وتقوم بإغلاق الملف من تلقاء نفسها لذلك لا داعي لإغلاق الملف بواسطة
الدالة fclose بعد استخدامك لهذه الدالة ، وتقوم الدالة بقراءة المحتويات
وطباعتها بشكل قياسي ، وهي تحتاج إلى معامل واحد فقط وهو مقبض الملف ...

مثال :

<?

$fp=fopen("file.txt","r");

fpassthru($fp)

?>



Readfile

تقوم هذه الدالة بقراءة جميع محتويات الملف ولا تحتاج إلي مقبض بل إلى
مسار الملف فقط وتقوم بقراءة كامل محتويات الملف ثم طباعتها بشكل قياسي
وتقوم بإرجاع عدد البايتات التي تم قراءتها أو (false) عند حدوث خطأ ما

<?

Readfile ("file.txt");

?>



الوصول العشوائي إلى الملفات



أخبرناكم سابقا بأن هناك طريقة تجعلك تتحكم في التحكم بالمؤشر الوهمي
للملف والوصول إلي أي مكان في الملف أو عند أي حرف تريده ، بالدوال
السابقة كنا عندما نصل إلي حرف معين مثلاً بدالة من الدوال فإننا نقوم
بإغلاق الملف ثم نعاود فتحه كي نكمل القراءة من عند الحرف الذي تم الوصول
إليه ولكن هذه الطريقة غير عمليه نهائيا .....

يوصل لنا الـPHP بعض الدوال التي تمكننا من الوصول إلي الملف بالمكان الذي نريده ومن هذه الدوال :



Fseek

تحتاج هذه الدالة إلى عاملين ، العامل الأول هو مقبض الملف $fp والعامل
الثاني هو عبارة عن رقم صحيح يسمونه كمصطلح بالـ(offset) أي المكان الذي
سيتوقف فيه المؤشر ، سيقوم الـPHP بالتحرك في الملف إلي أن يصل إلى المكان
الذي تم تحديده .. أي أنه إذا كان في الملف سطر واحد مكون من عشره حروف
وقمنا بجعل الـoffset خمسة ، سيقوم الـPHP بالتحرك حتى يصل إلى نهاية
الحرف الخامس ...

وهناك معامل ثالث اختياري لهذه الدالة ويسمونه كمصطلح بالـ (whence ) وله إحدى ثلاث خيارات :

Seek_set ويقوم بقراءة الملف من بدايته حتى يصل إلى المكان المطلوب بالـoffset

Seek_cur يقوم بالقراءة من المكان الحالي حتى يصل إلي المكان المطلوب بالـoffset

Seek_End يقوم بالقراءة من نهاية الملف حتى يصل إلي المكان المحدد بالoffset



تعتبر هذه الدالة نادرة في عملها ( أو كما يسميها المبرمجون شاذة) بسبب
أنها تقوم بإرجاع القيمة (0) عند نجاحها والقيمة (-1) عند حصول خطأ ما ..



مثال :

قم بفتح ملف واكتب فيه ثمان حروف متتالية ثم قم بحفظه باسم file.txt ثم قم
بوضعه مع ملف PHP فيه الشفرة التالية ، ثم بعد ذلك شغل ملف الـPHP وانتظر
النتيجة :

<?

$fp = fopen("file.txt");

fseek($fp,4,SEEK_SET);

fpassthru($fp);

?>



Ftell

هذه الدالة من الدوال المفيدة فهي تقوم بإرجاع مكان الـoffset ( أو المؤشر
الوهمي) في الملف وتحتاج إلي معامل واحد وهو مقبض الملف ...

<?

$fp = fopen ("file.txt");

$p = ftell($fp);

echo $p;

?>



Rewind

تقوم بإرجاع المؤشر إلي بداية الملف ...

<?

$fp = fopen ("file.txt");

rewind($fp)

?>



جلب معلومات الملف



يوفر الـPHP دوال تساعدنا في معرفه حجم الملف وما إذا كان الملف موجوداً أم لا من هذه الدوال :



File_exists

تقوم هذه الدالة بالقيام بالتأكد ما إذا كان الملف موجوداً أم لا وهي
تحتاج على معامل واحد وهو مسار الملف ، وتقوم بإرجاع true (1) إذا كان
الملف موجوداً و false إذا كان الملف غير موجود

<?

$Th=File_exists("file.txt");

echo $Th ;

?>



Filesize

تقوم هذه الدالة بإرجاع حجم الملف بالبايتات أو false عند حصول خطأ ...



دوال الملفات المتعلقة بالوقت :



هذه الدوال تقوم بإرجاع معلومات مفيدة عن وقت التغيير الذي طرا على الملف
أو آخر مره تم قراءته وهي على حسب نظام التشغيل فإذا كان نظام السيرفير هو
يونكس أو لينوكس ستقوم الدوال بإرجاع الوقت بنظام (timestamp) وهو الوقت
مترجم إلي عدد الثواني منذ صدور يونكس ومولده على العالم ، بينما تقوم
بإرجاع وقت التعديل على نظام الويندوز مباشره ...



يقوم الـPHP بتزويدنا بدالتين لمعرفه الوقت :

Filectime وتقوم بإرجاع آخر وقت تم فيه التغيير على الملف على شكل
timestamp ويشمل هذا آخر وقت تم فيه إنشاء الملف أو الكتابة إليه أو تغيير
تراخيصه ...

Filemtime تقوم بإرجاع آخر وقت تم فيه التعديل على الملف على شكل
timestamp ويشمل هذا إنشاء الملف أو تغيير محتوياته ...

تقوم الدالة getdate بعمل مفيد وهو تحويل الوقت من timestamp إلي الوقت العادي



الملكية والتراخيص



على أنظمة تشغيل اليونكس مثل يونكس ترتبط الملفات مع مستخدم خاص أو مجموعة
من المستخدمين (group) وتحتوي على علامات وتراخيص تقوم بتوضيح من له
صلاحية على استخدامها ..

يمكننا أن نخلص التراخيص كالتالي :

1 / ممتلك الملف (owner) ، بشكل افتراضي ، وهو المستخدم الذي تم استخدام حسابه في استخدام الملف .



2 / مجموعه من المستخدمين (group) ، بشكل افتراضي ، المجموعة التي يكون ضمنها مالك الملف



3 / جميع المستخدمين (all) كل شخص له حساب على النظام .



المستخدمين والمجموعات في أنظمة اليونكس يتم تعرفهم عن طريق رقم (ID)
مثلما يتم تعريفهم عبر أسمائهم ، إذا كنت تريد معرفه معلومات شخص عن طريق
رقمه ، يمكنك استخدام هذه الدالة :



Posix_getpwind

التي ستقوم بإعطائنا مصفوفة تحتوي على المعلومات التالية



Name
اسم المستخدم الذي يدخل به في حسابه

passwd
كلمة السر المشفرة للمستخدم

uid
رقم الحساب للمستخدم

gid
رقم حساب المجموعة التي فيها المستخدم

gecos
اسم المستخدم الكامل ، رقم تلفونه ومعلومات إضافية

dir
المجلد الرئيسي للمستخدم

shell
المسار الرئيسي لحساب المستخدم




Posix_getgrgid

تقوم هذه الدالة بإرجاع مصفوفة عن معلومات المجموعة ، وهي تحتاج إلى معامل واحد فقط وهو رقم الـID للمجموعة ...

وسوف تحتوي على العناصر التالية :



اسم المجموعة
Name

رقم المجموعة
Gid

عدد أعضاء المجموعة
members




وهناك ايضا خمس دوال تساعدنا في معرفة معلومات أكثر عن الملفات وتحتاج فقط إلي مسار الملفات



Fileowner

تقوم بإرجاع رقم المعرف (ID) لمالك الملف ...



Filegroup

تقوم بإرجاع رقم المعرف (ID) لرقم المجموعة التي يعتبر مالك الملف ضمنهم ..



Filetype

تقوم بإرجاع رقم نوع الملف وقد تعود بإحدى هذه القيم (file ، dir ، char ،fifo ، link ،block ) والذي يهمنا منهم هو file وdir ...



Is_dir

وتقوم بإرجاع True إذا كانت قيمه المسار هو مجلد ..



Is_file

وتقوم بإرجاع True إذا كانت قيمه المسار هو ملف ..



الحصول على اسم الملف من وسط مسار الملف ..

Basename()

مثال :

<?

$path = "/home/httpd/html/index.php3";

$file = basename ($path);

echo '$file <br>';

$file = basename ($path,".php3");

echo '$file <br>';

?>

هذه الدالة مفيدة جداً للحصول على الملف من وسط مسار مجلد ..



نسخ ، اعادة تسمية وحذف الملفات



تسمح لك الـPHP بنسخ ، وإعادة تسمية ، وحذف والدوال التي تستخدم لتنفيذ هذه العمليات هي



Copy ()

تقوم بأخذ قيمتين حرفتين وتشير إلي مصدر الملف الرئيسي الذي يوجد فيه الملف والمصدر الهدف الذي سيتم نسخ الـPHP إليه ...

<?

if (!copy($file, $file.'.bak')) {

print ("failed to copy $file...<br>\n");

}

?>



Rename

نستطيع الآن استخدام هذه الدالة لإعادة تسمية الملف وهي تحتاج إلي قيمتين
حرفتين وهي المصدر الملف أو مكانه واسمه الرئيسي ثم الاسم الجديد الذي
تريد إعادة التسمية به ..

مثال :

<?

Rename ('file.txt','newfile.txt');

?>



Unlink()

تحتاج إلي قيمه حرفيه واحده وهي مسار الملف الذي تريد حذفه

<?

unlink ('file.txt');

?>



العمل مع المجلدات



مثلما تعاملنا مع الملفات في الـPHP فإننا نتعامل مع المجلدات ، فهناك
دوال للمجلدات تتطلب مقبض المجلد ، وهناك دوال تحتاج فقط إلي القيمة
الحرفية فقط وبدلاً من الإطالة دعنا نقوم بالدخول في الموضوع مباشرة



Opendir

تقوم بفتح المجلد وإعطائنا مقبض المجلد



Closedir()

تقوم بإغلاق المجلد المفتوح وتحتاج فقط إلى مقبض المجلد ...



Readdir

تقوم بقراءة المدخل الحالي للمجلد ...



Rewindir

تقوم بإرجاع المدخل من الصفر ..



Chdir

للانتقال إلي مجلد آخر ، وتتطلب المسار للمجلد الذي تريد الانتقال إليه ..







Rmdir

تقوم بمسح مجلد ، ولكن يجب أن يكون المجلد خاليا من أي ملفات أو مجلدات ، وتتطلب مسار المجلد الذي تريد مسحه ..



Mkdir

تقوم بإنشاء مجلد جديد وتتطلب أن يكون هذا المجلد غير موجود مسبقاً وتحتاج
إلي قيمتين وهما اسم المجلد الجديد مع مساره ، والترخيص المطلوب له ..



Dirname

تقوم بإعطائنا اسم المجلد الحالي الذي فيه الملف ، وتحتاج إلي مسار الملف ..



تطبيق عملي :

أنشئ مجلد اسمه tmp في مجلد الـhtdocs وضع فيه ملفات ، ثم أنشئ ملف اسمه test.php في مجلد الـhtdocs واكتب الشفرة التالية ثم شغله :

<?php

if ($dir = @opendir("/tmp")) {

while($file = readdir($dir)) {

echo "$file\n";

}

closedir($dir);

}



?>



Dir()

عبارة عن كائن يحتوي على ثلاث وظائف .. ونقوم بإعطائه مسار المجلد الذي
نريده أن يتعامل معه ثم بعد ذلك نقوم بوضع قيمته في متغير يقوم بوراثة
صفاته



خصائص الكائن :



handle

تقوم بإعطائك مقبض المجلد ..



Path

تقوم بإعطائك المسار للمجلد ..



Read

تقوم بإعطائنا المجلدات اعتماداً على المؤشر الحالي للمجلد ..



Rewind

تقوم بإرجاع مؤشر المجلد من الصفر ..تقريباً نفس عمليه rewinddir ..



Closedir

تقوم بإغلاق المجلد ..



بهذا يكون انتهي الدرس

قد تكون بعض النقاط غير واضحة ، في الواقع لن تحتاج إلي كل هذه الأمور في تعاملك مع الملفات
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://chababewachabate.jtkc.org
nana
المشرفة العامة
المشرفة العامة
nana


انثى

عدد المساهمات : 209
نقاط : 232
السٌّمعَة : 3
تاريخ التسجيل : 12/09/2009
الموقع : اكيد البيت
المزاج المزاج : عادى

الدرس التاسع عشر : التعامل مع الملفات والمجلدات Empty
مُساهمةموضوع: رد: الدرس التاسع عشر : التعامل مع الملفات والمجلدات   الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء سبتمبر 30, 2009 3:44 pm

مرسى
الرجوع الى أعلى الصفحة اذهب الى الأسفل
fat7alahe
المدير العام
المدير العام
fat7alahe


ذكر

عدد المساهمات : 608
نقاط : 3996
السٌّمعَة : 0
تاريخ التسجيل : 30/08/2009
العمر : 30
الموقع : المغرب
المزاج المزاج : رايق

الدرس التاسع عشر : التعامل مع الملفات والمجلدات Empty
مُساهمةموضوع: رد: الدرس التاسع عشر : التعامل مع الملفات والمجلدات   الدرس التاسع عشر : التعامل مع الملفات والمجلدات Emptyالأربعاء سبتمبر 30, 2009 4:04 pm

العفو
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://chababewachabate.jtkc.org
 
الدرس التاسع عشر : التعامل مع الملفات والمجلدات
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» حصري البرنامج الرائع جدار نارى لوقاية الجهاز من جميع الملفات الضارة
» برنامج مسمي الملفات القرانيةيعمل على نظام النوافذ فيستا وسفن لاول مرةفي المنتديات

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتدى شباب و شابات حطان :: ركن تطوير المواقع والمنتديات-
انتقل الى: