Câu trả lời:
Bạn đang tìm kiếm basename
.
Ví dụ từ hướng dẫn 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
trên basename
như Metafaniel đăng tải dưới đây. pathinfo()
sẽ cung cấp cho bạn một mảng với các phần của đường dẫn. Hoặc đối với trường hợp ở đây, bạn chỉ có thể yêu cầu tên tệp cụ thể. Vì vậy, pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
nên trả lại 'index.php'
tài liệu PHP Pathinfo
PATHINFO_BASENAME
nhận được đầy đủ index.php
. PATHINFO_FILENAME
sẽ cung cấp cho bạn index
.
mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
- chỉ cần thay thế UTF-16LE bằng bất kỳ ký tự nào mà hệ thống tệp của bạn sử dụng (NTFS và ExFAT sử dụng UTF16)
Tôi đã thực hiện điều này bằng cách sử dụng chức năng PATHINFO
tạo ra một mảng với các phần của đường dẫn để bạn sử dụng! Ví dụ: bạn có thể làm điều này:
<?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);
?>
Điều này sẽ trở lại:
/usr/admin/config
test.xml
xml
test
Việc sử dụng chức năng này đã có sẵn kể từ PHP 5.2.0!
Sau đó, bạn có thể thao tác tất cả các phần khi bạn cần. Ví dụ: để sử dụng đường dẫn đầy đủ, bạn có thể làm điều này:
$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
Các basename
chức năng sẽ cho bạn những gì bạn muốn:
Đưa ra một chuỗi chứa một đường dẫn đến một tệp, hàm này sẽ trả về tên cơ sở của tệp.
Ví dụ: trích dẫn trang hướng dẫn:
<?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"
?>
Hoặc, trong trường hợp của bạn:
$full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map';
var_dump(basename($full));
Bạn sẽ nhận được:
string(10) "Output.map"
Có một số cách để có được tên tập tin và phần mở rộng. Bạn có thể sử dụng một trong những sau đây là dễ sử dụng.
$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
Với SplFileInfo :
SplFileInfo Lớp SplFileInfo cung cấp giao diện hướng đối tượng mức cao đến thông tin cho một tệp riêng lẻ.
Tham chiếu : http://php.net/manual/en/splfileinfo.getfilename.php
$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());
o / p: chuỗi (7) "foo.txt"
basename () có lỗi khi xử lý các ký tự châu Á như tiếng Trung Quốc.
Tôi sử dụng cái này:
function get_basename($filename)
{
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
Caution basename() is locale aware, so for it to see the correct basename with multibyte character paths, the matching locale must be set using the setlocale() function.
. Nhưng tôi cũng sử dụng preg numplace, vì trình phân tách thư mục khác nhau giữa các hệ điều hành. Trên Ubuntu `\` không phải là dấu tách trực tiếp và tên cơ sở sẽ không có hiệu lực đối với nó.
Để thực hiện điều này trong một vài dòng, tôi sẽ đề nghị sử dụng DIRECTORY_SEPARATOR
hằng số tích hợp cùng với explode(delimiter, string)
để tách đường dẫn thành các phần và sau đó chỉ cần ngắt phần tử cuối cùng trong mảng được cung cấp.
Thí dụ:
$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'
Bạn có thể sử dụng hàm basename () .
Để có được tên tệp chính xác từ URI, tôi sẽ sử dụng phương pháp này:
<?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, '?'));
?>
<?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>
Thật đơn giản. Ví dụ:
<?php
function filePath($filePath)
{
$fileParts = pathinfo($filePath);
if (!isset($fileParts['filename']))
{
$fileParts['filename'] = substr($fileParts['basename'], 0, strrpos($fileParts['basename'], '.'));
}
return $fileParts;
}
$filePath = filePath('/www/htdocs/index.html');
print_r($filePath);
?>
Đầu ra sẽ là:
Array
(
[dirname] => /www/htdocs
[basename] => index.html
[extension] => html
[filename] => index
)
$image_path = "F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map";
$arr = explode('\\',$image_path);
$name = end($arr);