PHP वर्तमान निर्देशिका का नाम प्राप्त करें


123

मेरी वेबसाइट पर एक फ़ोल्डर के अंदर एक php पेज है।

मुझे उदाहरण के लिए एक चर में वर्तमान निर्देशिका का नाम जोड़ना होगा:

$myVar = current_directory_name;

क्या यह संभव है?

जवाबों:


247
getcwd();

या

dirname(__FILE__);

या (PHP5)

basename(__DIR__) 

http://php.net/manual/en/function.getcwd.php

http://php.net/manual/en/function.dirname.php

आप basename()पथ का अनुगामी भाग प्राप्त करने के लिए उपयोग कर सकते हैं :)

आपके मामले में, मैं कहूंगा कि आप सबसे अधिक उपयोग करने की संभावना देख रहे हैं getcwd(), dirname(__FILE__)अधिक उपयोगी है जब आपके पास एक फ़ाइल होती है जिसमें किसी अन्य लाइब्रेरी को शामिल करने की आवश्यकता होती है और किसी अन्य लाइब्रेरी में शामिल की जाती है।

उदाहरण के लिए:

main.php
libs/common.php
libs/images/editor.php

अपने common.phpकार्यों में editor.phpआपको कार्यों का उपयोग करने की आवश्यकता होती है , इसलिए आप उपयोग करते हैं

common.php:

require_once dirname(__FILE__) . '/images/editor.php';

main.php:

require_once libs/common.php

इस तरह जब common.php है require'dमें main.php, की कॉल require_onceमें common.phpहोगा सही ढंग से शामिल editor.phpमें images/editor.phpजहां मौजूदा निर्देशिका में देखने के लिए कोशिश कर के बजाय main.phpचलाया जाता है।


5
और basename(__DIR__)PHP 5 में
Xeoncross

इससे मुझे पूरा रास्ता मिल रहा है। वहाँ सिर्फ निर्देशिका नाम प्राप्त करने का एक तरीका है?
साच ३०००

13
@ Satch3000basename(getcwd())
एंड्रियास वोंग

2
ध्यान दें कि यदि आप शामिल या आवश्यक का उपयोग करते हैं, __DIR__तो शामिल फ़ाइल का पथ है और वर्तमान निर्देशिका नहीं है
सेबस्टियन होरिन

basename(__DIR__) मेरे लिए दिन बचाने का उपयोग करना । साझा करने के लिए एक टन धन्यवाद!
डिवनेर

18

केवल उस निर्देशिका का नाम प्राप्त करने के लिए जहां स्क्रिप्ट निष्पादित की गई है:

//Path to script: /data/html/cars/index.php
echo basename(dirname(__FILE__)); //"cars"


11

उदाहरण के लिए

Your Path = /home/serverID_name/www/your_route_Dir/

THIS_is_the_DIR_I_Want

एक आत्मा जो काम करती है:

$url = dirname(\__FILE__);
$array = explode('\\\',$url);
$count = count($array);
echo $array[$count-1];

3
लगता है कि ओपी ने पहले ही उनकी समस्या का जवाब स्वीकार कर लिया है। यद्यपि आपने स्पष्ट रूप से मूल्य जोड़ दिया है, क्या आपको यहां अपने फर्स्ट्रेशन को बाहर निकालने की आवश्यकता है?
डट्स

stackoverflow.com/help/formatting कैप के उपयोग से बचने वाली चीजों को बोल्ड बनाने के बारे में बताएगा, जिसे आपने इंटरनेट पर चिल्लाने के लिए काफी सही बताया है।
Dutts

7

वास्तव में मैंने पाया सबसे अच्छा समाधान निम्नलिखित है:

$cur_dir = explode('\\', getcwd());
echo $cur_dir[count($cur_dir)-1];

यदि आपका डायर www \ var \ path \ Current_Path है

इसके बाद यह Current_path लौटाता है


4
देखो, लिनक्स सर्वर में हम बैकस्लैश का उपयोग नहीं करते हैं लेकिन स्लैश करते हैं। PHP के पास इसे पार मंच बनाने के लिए एक जादू स्थिरांक है, देखेंPATH_SEPARATOR
renirb

2

$myVar = str_replace('/', '', $_SERVER[REQUEST_URI]);

libs / images /index.php
परिणाम: चित्र


वैसे मुझे लगता है कि हम सभी इस बात से सहमत होंगे कि स्टैक ओवरफ्लो में नेट पर सबसे अधिक पांडित्यपूर्ण उपयोगकर्ता हैं। यह थोड़े बात है। समाधान प्राप्त करने की कोशिश करना जो अभी भी 20 साल के समय में एक अजीब स्थान पर काम करेगा मुश्किल है। अगर हम में से कुछ को खराब कर दिया जाता है, तो बस क्षेत्र के साथ चला जाता है। :) पी एस मैं मतदाता नहीं था।
एडम चैलकॉन

1

यदि आपके पास PATH है और यदि आपकी स्क्रिप्ट उस फ़ोल्डर में काम करती है, जिसमें आप रुचि रखते हैं, तो यह कार्य करना चाहते हैं:

basename(parse_url($_GET['dir_link'])['path'],PHP_URL_PATH)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.