Например, как получить 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>