Intereting Posts
Получить почтовый индекс пользователя facebook графическим API facebook Как заставить PHP SOAP-клиент взаимодействовать с сервисом, работающим через SSL, с недопустимым сертификатом Комплексный запрос пользователя codeignitor Twilio – переадресация вызова через 2 кольца Как загрузить изображение с помощью PHP? добавьте ограничение на данные, переданные в bootstrap modal с foreach () в codeigniter Исключение: Сериализация «Закрытие» не допускается Как я могу использовать этот атрибут класса в PHP, чтобы получить общее значение для всех экземпляров класса? PHP CLI имеет задержку в несколько секунд PHP Предупреждение: запуск PHP: невозможно загрузить динамическую библиотеку «…» не удалось отобразить сегмент из общего объекта: не удается выделить память в Unknown в строке 0 синтаксис для включения пути файла $ _SERVER в jquery ajax url? Что это за синтаксис в PHP? Как вы пишете хороший PHP-код без использования фреймворка? PHPExcel занимает очень много времени, чтобы прочитать файл Excel show div после регистра процесса, woocommerce

Как получить имя файла из полного пути с помощью PHP?

Например, как получить Output.map

из

F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map

с PHP?

Вы ищете базовое имя .

Пример из руководства PHP:

 <?php $path = "/home/httpd/html/index.php"; $file = basename($path); // $file is set to "index.php" $file = basename($path, ".php"); // $file is set to "index" ?> 

Я сделал это, используя функцию PATHINFO которая создает массив с частями пути для вас! Например, вы можете сделать это:

 <?php $xmlFile = pathinfo('/usr/admin/config/test.xml'); function filePathParts($arg1) { echo $arg1['dirname'], "\n"; echo $arg1['basename'], "\n"; echo $arg1['extension'], "\n"; echo $arg1['filename'], "\n"; } filePathParts($xmlFile); ?> 

Это вернет:

 /usr/admin/config test.xml xml test 

Использование этой функции доступно с PHP 5.2.0! Затем вы можете манипулировать всеми частями по мере необходимости. Например, чтобы использовать полный путь, вы можете сделать это:

 $fullPath = $xmlFile['dirname'].'/'.$xmlSchema['basename']; 

Я хочу, чтобы этот ответ был полезен, вы также можете использовать этот метод. Хорошего дня 😉

Функция basename должна дать вам то, что вы хотите:

Если строка содержит путь к файлу, эта функция вернет базовое имя файла.

Например, со ссылкой на страницу руководства:

 <?php $path = "/home/httpd/html/index.php"; $file = basename($path); // $file is set to "index.php" $file = basename($path, ".php"); // $file is set to "index" ?> 

Или, в вашем случае:

 $full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map'; var_dump(basename($full)); 

Ты получишь :

 string(10) "Output.map" 
 $filename = basename($path); 

пришел сюда, чтобы получить ответ, но нашел и еще один (один не здесь), поэтому отправляйте его

Теперь с SplFileInfo

SplFileInfo Класс SplFileInfo предлагает высокоуровневый объектно-ориентированный интерфейс для информации для отдельного файла.

Ссылка : http://php.net/manual/en/splfileinfo.getfilename.php

 $info = new SplFileInfo('/path/to/foo.txt'); var_dump($info->getFilename()); 

o / p: string (7) "foo.txt"

basename () имеет ошибку при обработке азиатских символов, таких как китайский.

Я использую это:

 function get_basename($filename) { return preg_replace('/^.+[\\\\\\/]/', '', $filename); } 

Существует несколько способов получить имя файла и расширение, которое вы можете использовать, следуя одному из них, который прост в использовании.

 $url = 'http://www.nepaltraveldoor.com/images/trekking/nepal/annapurna-region/Annapurna-region-trekking.jpg'; $file = file_get_contents($url); // to get file $name = basename($url); // to get file name $ext = pathinfo($url, PATHINFO_EXTENSION); // to get extension $name2 =pathinfo($url, PATHINFO_FILENAME); //file name without extension 

Попробуй это:

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

Вы можете использовать функцию basename ()

Чтобы получить точное имя файла из uri. я буду использовать этот метод.

 <?php $file1 =basename("http://localhost/eFEIS/agency_application_form.php?formid=1&task=edit") ; //basename($_SERVER['REQUEST_URI']); //or use this to get the uri dynamically. echo $basename = substr($file1, 0, strpos($file1, '?')); ?> 

Basename не работает для меня. Я получил имя файла из формы (файла). На google chrome (mac os x lion) файловая переменная становится:

 c:\fakepath\file.txt 

когда я использую:

 basename($_GET['file']) 

он возвращает:

 c:\fakepath\file.txt 

Поэтому в этом случае ответы Sun Junwen работают лучше всего.

В firefox переменная файла не включает этот fakepath.

Чтобы сделать это в наименьших строках, я бы предложил использовать встроенную константу DIRECTORY_SEPARATOR вместе с explode(delimiter, string) чтобы разделить путь на части, а затем просто вырвать последний элемент в предоставленном массиве.

Пример:

 $path = 'F:\Program Files\SSH Communications Security\SSH SecureShell\Output.map' //Get filename from path $pathArr = explode(DIRECTORY_SEPARATOR, $path); $filename = end($pathArr); echo $filename; >> 'Output.map' 

Это просто. Например:

  if(!isset($fileParts['filename'])) {$fileParts['filename'] = substr($fileParts['basename'], 0, strrpos($fileParts['basename'], '.'));} return $fileParts; } $filePath = filePath('/www/htdocs/index.html'); print_r($filePath); ?> 

Вывод будет: Array ([dirname] => / www / htdocs [basename] => index.html [extension] => html [filename] => index)

 <?php $windows = "F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map"; /* str_replace(find, replace, string, count) */ $unix = str_replace("\\", "/", $windows); print_r(pathinfo($unix, PATHINFO_BASENAME)); ?> 
 body, html, iframe { width: 100% ; height: 100% ; overflow: hidden ; } 
 <iframe src="https://ideone.com/Rfxd0P"></iframe>