php فتح الحصول على اسم ملف البرنامج النصي الحالي




فتح ملف php (12)

إذا كان لدي برنامج PHP النصي ، كيف يمكنني الحصول على اسم الملف من داخل هذا البرنامج النصي؟

أيضا ، نظرا لاسم برنامج نصي من شكل jquery.js.php ، كيف يمكنني استخراج جزء "jquery.js" فقط؟


إجابة أليكس صحيحة ، لكن يمكنك أيضًا إجراء ذلك بدون تعبيرات عادية مثل:

str_replace(".php", "", basename($_SERVER["SCRIPT_NAME"]));

جرب هذا

$current_file_name = $_SERVER['PHP_SELF'];
echo $current_file_name;


إليك قائمة بما وجدته مؤخرًا في البحث عن إجابة:

//self name with file extension
echo basename(__FILE__) . '<br>';
//self name without file extension
echo basename(__FILE__, '.php') . '<br>';
//self full url with file extension
echo __FILE__ . '<br>';

//parent file parent folder name
echo basename($_SERVER["REQUEST_URI"]) . '<br>';
//parent file parent folder name with //s
echo $_SERVER["REQUEST_URI"] . '<br>';

// parent file name without file extension
echo basename($_SERVER['PHP_SELF'], ".php") . '<br>';
// parent file name with file extension
echo basename($_SERVER['PHP_SELF']) . '<br>';
// parent file relative url with file etension
echo $_SERVER['PHP_SELF'] . '<br>';

// parent file name without file extension
echo basename($_SERVER["SCRIPT_FILENAME"], '.php') . '<br>';
// parent file name with file extension
echo basename($_SERVER["SCRIPT_FILENAME"]) . '<br>';
// parent file full url with file extension
echo $_SERVER["SCRIPT_FILENAME"] . '<br>';

//self name without file extension
echo pathinfo(__FILE__, PATHINFO_FILENAME) . '<br>';
//self file extension
echo pathinfo(__FILE__, PATHINFO_EXTENSION) . '<br>';

// parent file name with file extension
echo basename($_SERVER['SCRIPT_NAME']);

لا تنس إزالة :)

<br>


$ ARGV [0]

لقد وجدت أنه من الأسهل استخدام $argv[0] . دائمًا ما يكون اسم النص البرمجي للتنفيذ هو العنصر الأول في مصفوفة $argv . بخلاف كافة الطرق الأخرى المقترحة في إجابات أخرى ، لا تتطلب هذه الطريقة استخدام basename() لإزالة شجرة الدليل. فمثلا:

  • echo __FILE__; يعيد شيئًا مثل /my/directory/path/my_script.php

  • echo $argv[0]; يقوم بإرجاع my_script.php


يمكنك أيضًا استخدام هذا:

echo $pageName = basename($_SERVER['SCRIPT_NAME']);

$filename = "jquery.js.php";
$ext = pathinfo($filename, PATHINFO_EXTENSION);//will output: php
$file_basename = pathinfo($filename, PATHINFO_FILENAME);//will output: jquery.js

عندما تريد أن تعرف التضمين الخاص بك الملف الموجود فيه (أي اسم البرنامج النصي المطلوب بالفعل) ، استخدم:

basename($_SERVER["SCRIPT_FILENAME"], '.php')

لأنه عندما تكتب إلى ملف ، فإنك عادة تعرف اسمه.

تعديل: كما لاحظت Alec Teal ، إذا استخدمت symlinks ، فستعرض اسم الارتباط الرمزي بدلاً من ذلك.



كما قال البعض basename($_SERVER["SCRIPT_FILENAME"], '.php') و basename( __FILE__, '.php') هي طرق جيدة لاختبار ذلك.

بالنسبة لي باستخدام الثانية كان الحل لبعض التعليمات التحقق من الصحة كنت أفعل


هذا قد يساعد:

basename($_SERVER['PHP_SELF'])

سوف تعمل حتى إذا كنت تستخدم تشمل.


__FILE__ استخدم الأمثلة استنادًا إلى نتائج خادم localhost:

echo __FILE__;
// C:\LocalServer\www\templates\page.php

echo strrchr( __FILE__ , '\\' );
// \page.php

echo substr( strrchr( __FILE__ , '\\' ), 1);
// page.php

echo basename(__FILE__, '.php');
// page

هنا هو الفرق بين basename(__FILE__, ".php") و basename($_SERVER['REQUEST_URI'], ".php") .

basename(__FILE__, ".php") يعرض اسم الملف الذي تم تضمين هذا الكود فيه - وهو يعني أنه إذا قمت بتضمين هذه التعليمة البرمجية في header.php والصفحة الحالية هي index.php ، فستعرض الرأس وليس الفهرس .

basename($_SERVER["REQUEST_URI"], ".php") - إذا كنت تستخدم هذه التعليمة البرمجية في header.php والصفحة الحالية هي index.php ، فسوف تعود الفهرس لا رأس .





file