পিএইচপি বর্তমান ডিরেক্টরিটির নাম পান


123

আমার ওয়েবসাইটে আমার ফোল্ডারের ভিতরে একটি পিএইচপি পৃষ্ঠা রয়েছে।

আমার বর্তমান ডিরেক্টরিটির নামটি একটি চলকতে যুক্ত করতে হবে: উদাহরণস্বরূপ:

$myVar = current_directory_name;

এটা কি সম্ভব?

উত্তর:


247
getcwd();

অথবা

dirname(__FILE__);

বা (পিএইচপি 5)

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__)পিএইচপি 5
সিওনক্রস

এটি আমাকে পুরো পথ দিচ্ছে। কেবলমাত্র ডিরেক্টরি নাম পাওয়ার কোনও উপায় আছে?
Satch3000

13
@ Satch3000basename(getcwd())
Andreas Wong

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
ওপি তাদের সমস্যার একটি উত্তর ইতিমধ্যে গ্রহণ করেছে বলে মনে হচ্ছে। যদিও আপনি স্পষ্টভাবে মান যুক্ত করেছেন, আপনার কি এখানে আপনার জ্বালানি ছড়িয়ে দেওয়া দরকার?
ডটস

স্ট্যাকওভারফ্লো / হেল্প / ফর্ম্যাটিং কীভাবে ক্যাপগুলি ব্যবহার এড়ানো জিনিসগুলিকে কীভাবে সাহসী করা যায় তা ব্যাখ্যা করবে , যা আপনি ইন্টারনেটে চেঁচামেচি করে ডানোটেসকে বেশ সঠিকভাবে উল্লেখ করেছেন।
ডটস

7

আসলে আমি খুঁজে পেয়েছি সেরা সমাধানটি নিম্নলিখিত:

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

যদি আপনার dir হয় www \ var \ পথ \ বর্তমান_পথ

তারপরে এটি কারেন্ট_পথে ফিরে আসে


4
দেখুন, লিনাক্স সার্ভারে আমরা ব্যাকস্ল্যাশ ব্যবহার না করে স্ল্যাশ ব্যবহার করি। এটি প্ল্যাটফর্মটি ক্রস করার জন্য পিএইচপি-র একটি যাদু ধ্রুব রয়েছে, দেখুনPATH_SEPARATOR
22-30

2

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

libs / images /index.php
ফলাফল: চিত্রসমূহ


ওয়েল আমি মনে করি আমরা সকলেই একমত হই যে স্ট্যাক ওভারফ্লো নেটটিতে বেশিরভাগ প্যাডেন্টিক ব্যবহারকারী রয়েছেন। বিন্দু বিন্দু। একটি অদ্ভুত লোকালয়ে 20 বছরের সময় এখনও কার্যকর হবে এমন সমাধানগুলি পাওয়ার চেষ্টা করা জটিল। যদি আমাদের মধ্যে কিছু লোক ভুল হয়ে যায় তবে তা কেবল অঞ্চলটির সাথেই চলে। :) PS আমি নিচে ভোটার ছিল না।
অ্যাডাম চ্যালক্রাট

1

আপনার যদি পাঠাথ রয়েছে এবং আপনি যদি আগ্রহী ফোল্ডারে যদি আপনার স্ক্রিপ্টটি কাজ করে তবে উদ্বেগ তৈরি করতে না চাইলে এই কাজটি করুন:

basename(parse_url($_GET['dir_link'])['path'],PHP_URL_PATH)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.