هل يمكنني الحصول على مسار ملف PHP الذي تم استدعاؤه في الأصل داخل ملف مضمن؟

StackOverflow https://stackoverflow.com/questions/139794

  •  02-07-2019
  •  | 
  •  

سؤال

لنفترض أن لدينا index.php ويتم تخزينه في /home/user/public/www و index.php يدعو الفصل Foo->bar() من الملف inc/app/Foo.class.php.

أرغب في وظيفة الشريط في Foo الطبقة للحصول على عقد من المسار /home/user/public/www في هذه الحالة - لا أريد استخدام متغير عام، أو تمرير متغير، وما إلى ذلك.

هل كانت مفيدة؟

المحلول

ألن يمنحك هذا دليل البرنامج النصي الجاري تشغيله بسهولة أكبر؟

$dir=dirname($_SERVER["SCRIPT_FILENAME"])

نصائح أخرى

يمكنك استخدام debug_backtrace لإلقاء نظرة على مسار الاستدعاء والحصول على الملف الذي يستدعي هذه الوظيفة.

مثال قصير:

class Foo {
  function bar() {    
   $trace = debug_backtrace();
   echo "calling file was ".$trace[0]['file']."\n";
  }
}

getcwd() يحصل على دليل العمل الحالي

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

debug_backtrace() كما اقترح ديفون هو الجواب الذي تبحث عنه.

وجدته.getcwd().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top