w3schools - فتح ملف php




الحصول على اسم ملف البرنامج النصي الحالي (10)

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

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

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

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


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

//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>


جرب هذا

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


طريقة أكثر عمومية تستخدم pathinfo() . منذ الإصدار 5.2 يدعم PATHINFO_FILENAME .

وبالتالي

pathinfo(__FILE__,PATHINFO_FILENAME)

سوف تفعل أيضا ما تحتاجه.


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

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


ما عليك __FILE__ استخدام الرابط السحري PHP __FILE__ للحصول على اسم الملف الحالي.

ولكن يبدو أنك تريد الجزء بدون .php . وبالتالي...

basename(__FILE__, '.php'); 

سيبدو مزيل امتداد الملف الأكثر عمومية هكذا ...

function chopExtension($filename) {
    return pathinfo($filename, PATHINFO_FILENAME);
}

var_dump(chopExtension('bob.php')); // string(3) "bob"
var_dump(chopExtension('bob.i.have.dots.zip')); // string(15) "bob.i.have.dots"

استخدام وظائف مكتبة السلسلة القياسية أسرع بكثير ، كما تتوقع.

function chopExtension($filename) {
    return substr($filename, 0, strrpos($filename, '.'));
}

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

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

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


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

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

$ ARGV [0]

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

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

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


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




file