الدالة pathinfo()‎ في PHP

من موسوعة حسوب
< PHP

(PHP 4 >= 4.0.3, PHP 5, PHP 7)

تعيد الدالة pathinfo()‎ معلومات عن مسار الملف.

الوصف

mixed pathinfo ( string $path [, int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ] )

تعيد هذه الدالة معلومات عن المسار path المعطى، وتكون تلك المعلومات إمَّا مصفوفة من القيم أو سلسلة نصيَّة فقط بناءً على قيمة المعامل options.

ملاحظة: اقرأ للمزيد من التفاصيل حول استرجاع معلومات المسار الحالي قسم المتغيرات المُعرَّفة مسبقًا.

تحذير: تأخذ الدالة pathinfo()‎ قيمة المحليَّة (locale) بالحسبان، لذا يجب ضبط القيمة المناسبة للمحليَّة باستعمال الدالة setlocale()‎ إن احتوى المسار على محارف متعدِّدة البايتات لتتمكن الدالة من تحليله بطريقة صحيحة.

المعاملات

path

المسار المراد تحليله.

options

يحدِّد هذا المعامل المعلومات المُعادة وذلك باستعمال الثوابت التالية:

  • PATHINFO_DIRNAME: يُعاد اسم المجلَّد.
  • PATHINFO_BASENAME: يُعاد اسم الملف الأساسي.
  • PATHINFO_EXTENSION: يُعاد امتداد الملف.
  • PATHINFO_FILENAME: يُعاد اسم الملف.

إن لم تعطَ قيمة هذا المعامل، فستُعاد كلُّ المعلومات المتوافرة.

القيم المعادة

إن لم يمرَّر المعامل options، فستُعاد مصفوفة تحتوي على المعلومات التالية: اسم المجلد، واسم الملف أو المجلَّد الأساسي، والامتدادات (إن وجدت)، واسم الملف.

ملاحظة: إن كان للملف ذو المسار path أكثر من امتداد واحد، فسيعيد الثابت PATHINFO_EXTENSION الامتداد الأخير فقط؛ أمَّا الثابت PATHINFO_FILENAME سيزيل ذلك الامتداد الأخير فقط ثمَّ يعيد اسم الملف مع الامتدادات المتبقيَّة. (انظر إلى المثال 1 في قسم الأمثلة).

ملاحظة: إن لم يكن للمسار path أيُّ امتداد، فلن تُعاد أيَّة قيمة للامتداد. (انظر المثال 2 في قسم الأمثلة).

ملاحظة: إن بَدأ الاسم الأساسي للمسار path بنقطة، فستُفسَّر المحارف التي بعدها على أنَّها امتداد وسيكون حينئذٍ اسم الملف فارغًا. (انظر المثال 3 في قسم الأمثلة).

إن مُرِّر المعامل options، فستُعاد سلسلة نصيَّة تحتوي على المعلومات المحدَّدة بهذا الخيار.

سجل التغييرات

الإصدار الوصف
5.2.0 إضافة الثابت PATHINFO_FILENAME.

أمثلة

المثال 1: استعمال الدالة pathinfo()‎

<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // PHP 5.2.0 منذ إصدار
?>

سيُظهر المثال السابق النتيجة التالية:

/www/htdocs/inc
lib.inc.php
php
lib.inc

المثال 2: إظهار الفارق بين عدم وجود امتداد مطلقًا وبين وجود امتداد ذي قيمة فارغة

<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);

$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>

سيُظهر المثال نتيجة شبيهة بالتالي:

string(0) ""

Notice: Undefined index: extension in test.php on line 6
NULL

المثال 3: استعمال ملف ذي اسم يبتدئ بنقطة

<?php

print_r(pathinfo('/some/path/.test'));

?>

سيُظهر المثال نتيجة شبيهة بالتالي:

Array
(
    [dirname] => /some/path
    [basename] => .test
    [extension] => test
    [filename] => 
)

انظر أيضًا

  • الدالة dirname()‎: تعيد مسار المجلَّد الأب.
  • الدالة basename()‎: تعيد اسم الملف أو المجلَّد الأساسي.
  • الدالة parse_url()‎: تحلِّل العنوان URL الممرر إليها ثمَّ تعيد عناصره.
  • الدالة realpath()‎: تعيد المسار المجرَّد الأساسي للمسار المُمرَّر إليها.

مصادر