اذهب إلى المحتوى
  • 0

كيف يمكن التعامل مع مسارات المجلدات في PHP

Mohamed Refaat10

السؤال

بعمل على موقع ثابت باستخدام php

كيف اجعل وسم title يتغير تلقائيا على حسب إسم الملف ، وهل يوجد دالة php لارجاع قيمة المجلد الرئيسي للقالب

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

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

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

[دالة] الدالة ()basename
اقدم لك الدالة ()basename , من هدا المتال

كود PHP:

$path = "/home/httpd/html/index.php";  
$file = basename($path);         // $file is set to "index.php"  
echo $file."<br/ >";  

الناتج : index.php

كود PHP:

$path = "/home/httpd/html/index.php";  
$file2 = basename($path, ".php"); // $file is set to "index"  
echo $file2;

الناتج : index

[دالة] fread() [قراءة محتويات ملف] 
شرح الدالة
تستخدم الدالة لقراءة محتويات ملف..
يشترط قبل استخدام الدالة للقراءة فتح الملف للقراءة باستخدام الدالة fopen()
يتم تمرير باراميترين لهذه الدالة: الأول يحتوي على متغير فتح الملف، والثاني يحتوي على الحجم الذي نريد قراءته من الملف..

مثال عملي
في هذا المثال نريد قراءة جميع محتويات الملف file.txt الموجود داخل المجلد dir
فنقوم بتمرير الحجم المطلوب قراءته = كامل حجم الملف (بما أننا نريد قراءة الملف كاملاً)
ويمكننا الحصول على حجم الملف باستخداد الدالة filesize()

كود PHP:

<? 
$var = fopen("dir/file.txt", "r"); 
$content = fread($var, filesize("dir/file.txt")); 
echo $content; 
?>

[دالة] ;()getcwd
الدالة getcwd(); هي دالة تقوم بارجاع مكان الفولدر الحالي الدي يوجد به الكود , متال :

كود PHP:

getcwd(); 

لنتجية
C:AppServwww 
[دالة] readfile() [طباعة محتوى ملف الى المتصفح] 
شرح الدالة
تقوم الدالة بقراءة اي ملف وطباعة محتوياته للمتصفح
مثال عملي
كود PHP:

<? 
header("(anti-spam-content-type:) image/gif"); 
@readfile("images/swalif.gif"); 
// سيتم تحميل الصورة  
// swalif.gif 
// الموجودة أساساً في المجلد  
// images  
// الى المتصفح 
  
?>

[دالة] glob() [البحث عن ملف او مجلد معين]
شرح الدالة
الدالة تستخدم للبحث عن ملف أو مجلد معين باستخدام المسار الكامل له ..
وترجع نتائج البحث في مصفوفة..
ويكون البحث كما في المثال التالي
مثال عملي
كود PHP:

<? 
// الكود التالي سيقوم بطباعة عبارة "المجلد موجود" في حال كان المجلد المشار اليه موجوداً في الموقع 
$result = glob("/home/user/public_html/images/"); 
if($result) echo "المجلد موجود"; 
?>

[دالة] filemtime() [معرفة آخر تغيير على ملف]
دالة ;()fileatime هي في الحقيقة دالة مهمة , تقوم هده الدالة بطبع اخر لحظة تم الدخول اليها الى ملف معين , متال :
سنعتبر هنا ملف اسمه test2.php ::

كود PHP:

<? 
$filename = 'test2.php'; 
    echo date("F d Y H:i:s.", fileatime($filename)); 
?>

[دالة] scandir
ستنعرف على دالة scandir التي اتت مع نسخة php 5 
الدالة تصبح مصفوفة تحمل اسماء الملفات بمجرد اعطائها اسم الجلد
لنفرض ان لدينا مجلد باسم php5
قبل php 5 عندما تريد استخراج اسماء الملفات الموجودة في مجلد ما سيكون لازاما عليك كتابة هذا الكود
كود PHP:

$dir="php5"; // اسم المجلد  
$dir2=opendir($dir); // مقبض المجلد  
 while( $read=readdir($dir2) )   
    {  
    echo $read.'<br />'; // طباعة اسماء الملفات  
      
      
    }  
closedir($dir2);  

الأن سنجرب دالة scandir
كود PHP:

$dir="php5"; // اسم المجلد  
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة   

echo'<pre>';  
print_r($dir2);  
echo'</pre>'; 

وهذه طريقة طباعة اسماء الملفات بشكل عادي

كود PHP:

$dir="php5"; // اسم المجلد  
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة   

for($i=0;$i<count($dir2);$i++)  
   {  
  echo '<br />'.$dir2[$i];  

   }  

كما يمكن تجاهل . و ..
بهذا الكود

كود PHP:

$dir="php5"; // اسم المجلد  
$dir2=scandir($dir); // حفظ اسماء الملفات في مصفوفة   

for($i=0;$i<count($dir2);$i++)  
   {  
      // اذا كانت القيمة تساوي اي من  النقطة او النقطتين استمر ولا تطبعهما  
     if( $dir2[$i] == "." or $dir2[$i] == ".." )   
        {  
        continue;   
        }          
  echo '<br />'.$dir2[$i];  

   }  

[دالة] is_dir() [التحقق من أن المجلد موجود]
شرح الدالة
تقوم هذه الدالة بالتحقق من وجود المجلد الممرر لها.
مثال عملي
عند الرغبة في التحقق من وجود أي مجلد في الموقع، نقوم بتمرير اسم المجلد للدالة..

كود PHP:

<? 
// يقوم هذا الكود بطباعة "المجلد موجود" في حالة ان المجلد صحيح 
if(is_dir("images")) echo 'المجلد موجود'; 
?>

[دالة] fopen() [فتح ملف موجود أو انشاء ملف جديد]
شرح الدالة
من الدوال المهمة في لغة php
وهي الخطوة الأولى لجميع عمليات التعامل مع الملفات من قراءة وكتابة...
مثال1 (فتح ملف لقراءة محتوياته)
بفرض وجود ملف في المجلد dir وهو مجلد متفرع من المجلد الرئيسي للسكريبت، فيمكنك قراءة محتويات الملف وطباعتها للشاشة كالتالي:

كود PHP:

<? 
$var = fopen("dir/file.txt", "r"); 
$content = fread($var, filesize("dir/file.txt")); 
echo $content; 
?>

[دالة] filesize() [ايجاد حجم أي ملف]
شرح الدالة
تستخدم الدالة لايجاد حجم أي ملف
ويمرر لها باراميتر واحد وهو رابط الملف
مثال عملي

كود PHP:

<? 
$filename = "file.txt"; 
echo filesize($filename); 
// سيتم طباعة حجم الملف بالبايت 
?>

[دالة] is_file() [التحقق من أن الملف موجود]
شرح الدالة
تقوم هذه الدالة بالتحقق من وجود الملف الممرر لها.
مثال عملي
عند الرغبة في التحقق من وجود أي ملف في الموقع، نقوم بتمرير اسم الملف للدالة..
كود PHP:

<? 
// يقوم هذا الكود بطباعة "الملف موجود" في حالة ان الملف صحيح 
if(is_file("images/10.jpg")) echo 'الملف موجود'; 
?>

[دالة] chdir() [تغيير المجلد الحالي]
شرح الدالة
تقوم الدالة بالانتقال الى المجلد الممرر لها..
مثال عملي
مثلا لو كان السكريبت في المجلد public_html وأردت تصفح الملفات في المجلد images المتفرع من public_html فيمكنك الانتقال لهذا المجلد عن طريق الكود:
كود PHP:

<? 
// يقوم هذا الكود بالانتقال الى المجلد images لو كان موجود او يرجع false لو كان غير موجود 
chdir('images'); 
  
?>

دوال و درس وافي لتعلم كيفية التعامل مع الملفات والمجلدات

تحياتي لك

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

السلام عليكم

أخي الكريم يمكنك تغيير وسم <title> بإستعمال الـPHP على حسب اسم ملف الصفحة الحالية بهذا الكود:

<?php
	echo "<title>basename(__FILE__, '.php');</title>";
?>

أما دالة الـPHP التي ترجع قيمة المجلد الرئيسي للقالب فهي:

<?php
	basename(__DIR__); //ترجع لك إسم المجلد الحالي
?>

بالتوفيق!

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...