PHP lấy tên tệp từ tệp

Tệp máy tính là tài nguyên máy tính trên máy tính lưu trữ dữ liệu, thông tin, hình ảnh, video, cài đặt hoặc lệnh được sử dụng với chương trình máy tính. Trong giao diện đồ họa người dùng, một hệ điều hành hiển thị tệp dưới dạng biểu tượng

Giải pháp mẫu. -

Mã PHP



Đầu ra mẫu

5c019960-58d0-11e7-8ce0-bdc69d807a6b.php 

Sơ đồ


Trình soạn thảo mã PHP

Có một cách khác để giải quyết giải pháp này?

Trước. Viết một tập lệnh phát hiện trình duyệt PHP đơn giản
Kế tiếp. Viết tập lệnh PHP, tập lệnh này sẽ trả về các thành phần sau của url 'https. //www. w3resource. com/php-bài tập/php-cơ bản-bài tập. php'

Mức độ khó của bài tập này là gì?

Dễ dàng trung bình khó

Kiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource



Theo dõi chúng tôi trên FacebookTwitter để cập nhật thông tin mới nhất.

PHP. Lời khuyên trong ngày

PHP. Sự cố mã hóa ký tự PHPMailer

Nếu bạn chắc chắn 100% $message chứa ISO-8859-1, bạn có thể sử dụng utf8_encode như David nói. Nếu không, hãy sử dụng mb_detect_encoding và mb_convert_encoding trên $message

Cũng lưu ý rằng

$mail -> charSet = "UTF-8";

Nên thay bằng

$mail->CharSet = 'UTF-8';

Và được đặt sau phần khởi tạo của lớp [sau phần mới]. Các thuộc tính phân biệt chữ hoa chữ thường

Ngoài ra, mã hóa mặc định của PHPMailer là 8 bit, điều này có thể gây ra sự cố với dữ liệu UTF-8. Để khắc phục điều này, bạn có thể làm

Trong bài đăng này, chúng tôi sẽ cung cấp cho bạn thông tin về Cách lấy tên tệp không có phần mở rộng trong PHP. Nghe này, chúng tôi sẽ cung cấp cho bạn chi tiết về Cách lấy tên tệp không có phần mở rộng trong PHPVà cách sử dụng nó cũng cung cấp cho bạn bản demo cho nó nếu cần

Trong bài đăng này, bạn sẽ biết cách lấy tên tệp không có phần mở rộng từ đường dẫn tệp đã cho trong PHP

Bạn sẽ chỉ cần sử dụng các phương thức PHP được xác định trước rất đơn giản để lấy tên tệp

  1. $imagePath="{file-path}/filename.png";
  2. $ext=pathinfo[$imagePath, PATHINFO_EXTENSION];
  3. $file=basename[$imagePath,".".$ext];
  4. print_r[$file];
$imagePath = "{file-path}/filename.png";
$ext = pathinfo[$imagePath, PATHINFO_EXTENSION];

$file = basename[$imagePath,".".$ext];
print_r[$file];

Trong ví dụ trên, đường dẫn tệp sẽ là đường dẫn của tệp bạn đã chọn

Phương pháp pathinfo được sử dụng để lấy thông tin về đường dẫn

PATHINFO_EXTENSION được sử dụng để lấy phần mở rộng của tệp nếu có nhiều hơn một phần mở rộng với đường dẫn đã cho thì nó sẽ chỉ trả về phần mở rộng cuối cùng

basename được sử dụng để lấy tên tệp không có phần mở rộng. Trong phương thức tên cơ sở, hậu tố tham số thứ hai chỉ định phần mở rộng là tùy chọn nhưng nếu bạn chỉ cần lấy tên tệp thì bạn sẽ phải chuyển phần mở rộng làm đối số thứ hai trong phương thức này

$ext = pathinfo[$imagePath, PATHINFO_EXTENSION];

Đây là cách ngắn nhất để lấy phần mở rộng tên tệp bằng PHP

Nhãn.

PHP

Tệp

Cách

Phát triển Web

Hy vọng đoạn mã này và bài viết này sẽ giúp bạn triển khai Cách lấy tên tệp không có phần mở rộng trong PHP. nếu bạn cần bất kỳ trợ giúp hoặc bất kỳ phản hồi nào, hãy đưa ra trong phần bình luận hoặc bạn có ý tưởng hay về bài đăng này, bạn có thể đưa ra phần bình luận. Nhận xét của bạn sẽ giúp chúng tôi giúp bạn nhiều hơn và cải thiện chúng tôi. chúng tôi cũng sẽ cung cấp cho bạn loại bài đăng thú vị hơn này trong phần nổi bật,

Để lấy tên tệp từ một đường dẫn, mã như sau−

Thí dụ

Bản thử trực tiếp

";
?>

đầu ra

Điều này sẽ tạo ra đầu ra sau−

________số 8_______

Thí dụ

Bây giờ chúng ta hãy xem một ví dụ khác -

Bản thử trực tiếp

đầu ra

Điều này sẽ tạo ra đầu ra sau−

main

Chúng ta có thể sử dụng

// path with no file
echo basename['/path/to/directory/']; // 'directory'
2 để trả về tên tệp và phần mở rộng từ đường dẫn tệp, vì hàm trả về thành phần ở cuối từ một chuỗi chứa đường dẫn đến tệp hoặc thư mục. Để chứng minh điều này hoạt động như thế nào, hãy xem xét một vài ví dụ

// normal file
echo basename['/var/www/html/index.php']; // 'index.php'
// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
// path with no file
echo basename['/path/to/directory/']; // 'directory'
// current directory
echo basename['.']; // '.'
// root directory
echo basename['/']; // ''
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
// root directory with folder
echo basename['/foo/']; // 'foo'

Làm cho
// path with no file
echo basename['/path/to/directory/']; // 'directory'
2 làm việc với các ký tự nhiều byte

// path with no file
echo basename['/path/to/directory/']; // 'directory'
2 nhận biết ngôn ngữ, nên nó sẽ không hoạt động chính xác với các ký tự nhiều byte cho đến khi một ngôn ngữ phù hợp được đặt trước bằng cách sử dụng hàm
// path with no file
echo basename['/path/to/directory/']; // 'directory'
6

setlocale[LC_ALL, 'zh_CN.GBK'];

echo basename['/var/www/字形.woff']; // '字形.woff'

Sử dụng
// path with no file
echo basename['/path/to/directory/']; // 'directory'
7

Hàm

// path with no file
echo basename['/path/to/directory/']; // 'directory'
7 có thể được sử dụng để trả về thông tin về đường dẫn tệp. Sau đây là hai cách để chúng tôi có thể truy xuất tên tệp và phần mở rộng từ đường dẫn tệp bằng cách sử dụng
// path with no file
echo basename['/path/to/directory/']; // 'directory'
7

// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
0

Chúng ta cũng có thể sử dụng các hằng số

// current directory
echo basename['.']; // '.'
0 và
// current directory
echo basename['.']; // '.'
1 với
// path with no file
echo basename['/path/to/directory/']; // 'directory'
7 để lấy riêng tên tệp và phần mở rộng

Hoặc, điều tương tự có thể được viết mà không chuyển tùy chọn làm đối số thứ hai cho

// path with no file
echo basename['/path/to/directory/']; // 'directory'
7, trong trường hợp đó, nó sẽ trả về một mảng kết hợp chứa thông tin về đường dẫn tệp. Ví dụ

// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
1

Chúng tôi cũng có thể đã sử dụng

// current directory
echo basename['.']; // '.'
4 và
// current directory
echo basename['.']; // '.'
5 với
// path with no file
echo basename['/path/to/directory/']; // 'directory'
7 để nhận tên tệp và phần mở rộng riêng lẻ

Hãy cùng xem thêm một số ví dụ

// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
2_______12_______3
// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
4
// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
5
// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
6

Trong ví dụ trên, hãy chú ý cách mà

// current directory
echo basename['.']; // '.'
7 trả về
// current directory
echo basename['.']; // '.'
8 nhưng cả
// current directory
echo basename['.']; // '.'
9 và
// root directory
echo basename['/']; // ''
0 đều không làm như vậy

// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
7_______12_______8
// dotfile
echo basename['/var/httpd/.htaccess']; // '.htaccess'
9

Làm cho
// path with no file
echo basename['/path/to/directory/']; // 'directory'
7 làm việc với các ký tự nhiều byte

// path with no file
echo basename['/path/to/directory/']; // 'directory'
7 nhận biết ngôn ngữ, nó sẽ không hoạt động chính xác với các ký tự nhiều byte cho đến khi một ngôn ngữ phù hợp được đặt trước bằng cách sử dụng hàm
// path with no file
echo basename['/path/to/directory/']; // 'directory'
6

// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
0

Sử dụng
// root directory
echo basename['/']; // ''
4 Với
// root directory
echo basename['/']; // ''
5

Một cách thông minh khác để lấy tên tệp có phần mở rộng có thể là chỉ lấy thành phần cuối của chuỗi đường dẫn tệp bằng cách tách nó thành một mảng bằng dấu tách thư mục. Để xem điều này được thực hiện như thế nào, hãy xem xét các ví dụ sau

// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
1
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
2
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
3
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
4
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
5

Sự khác biệt chính của việc sử dụng

// root directory
echo basename['/']; // ''
4 [với mục đích lấy tên tệp có phần mở rộng] là ví dụ trên. Lưu ý cách điều này trả về một chuỗi trống cho đường dẫn kết thúc bằng dấu phân cách thư mục. Từ góc độ lấy tên tệp có phần mở rộng, đây có lẽ là hành vi đúng — tôi. e. trả về thành phần theo sau khi chuỗi không kết thúc bằng dấu tách thư mục và để trống nếu không

// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
6_______13_______7
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
8
// file with two extensions
echo basename['/usr/john.doe/my-file.tar.gz']; // 'my-file.tar.gz'
9

Làm việc với các ký tự nhiều byte

Các ký tự nhiều byte sẽ hoạt động tốt với

// root directory
echo basename['/']; // ''
4 miễn là chuỗi chứa các chuỗi nhiều byte được định dạng tốt. Tuy nhiên, nếu có thể, sử dụng các hàm chuỗi đa byte hoặc nhận biết ngôn ngữ khi làm việc với các chuỗi nhiều byte luôn là một lựa chọn tốt hơn. Trong trường hợp của
// root directory
echo basename['/']; // ''
4, bạn có khả năng có thể thay thế nó bằng
// root directory
echo basename['/']; // ''
9

// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
0

Sử dụng lớp
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
0

Trong lớp

// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
0, chúng ta có hai phương thức mà chúng ta có thể sử dụng để lấy tên tệp có phần mở rộng

  1. // root directory with file
    echo basename['/foo.txt']; // 'foo.txt'
    
    2
  2. // root directory with file
    echo basename['/foo.txt']; // 'foo.txt'
    
    3

Trong khi sử dụng một trong hai, hãy thận trọng về sự khác biệt giữa hai như thể hiện trong một số ví dụ sau

// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
1
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
2
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
3
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
4
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
5
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
6

Đối với các trường hợp sau, hãy lưu ý cách với phương thức

// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
4 có dấu gạch chéo ở đầu trong khi với phương thức
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
5 thì không có

// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
7_______14_______8
// file with no extension
echo basename['/var/www/DockerFile']; // 'DockerFile'
9

Làm cho các phương thức
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
0 hoạt động với các ký tự nhiều byte

Theo các tài liệu,

// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
2 nhận biết ngôn ngữ trong khi
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
3 thì không. Điều này có nghĩa là để
// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
2 hoạt động bình thường với các ký tự nhiều byte, trước tiên cần đặt một ngôn ngữ phù hợp bằng cách sử dụng hàm
// path with no file
echo basename['/path/to/directory/']; // 'directory'
6

// path with no file
echo basename['/path/to/directory/']; // 'directory'
0
// path with no file
echo basename['/path/to/directory/']; // 'directory'
1

Trong khi phương thức

// root directory with file
echo basename['/foo.txt']; // 'foo.txt'
4 sẽ hoạt động với một số/hầu hết các mã hóa ký tự nhiều byte [i. e. miễn là chuỗi chứa các chuỗi nhiều byte được định dạng tốt], đôi khi nó có thể không mang lại kết quả phù hợp. Do đó, luôn luôn là một lựa chọn tốt hơn khi sử dụng các hàm chuỗi nhận biết ngôn ngữ hoặc chuỗi nhiều byte khi làm việc với các chuỗi nhiều byte

Hy vọng bạn tìm thấy bài viết này hữu ích. Nó được xuất bản vào ngày 25 tháng 8 năm 2020. Hãy thể hiện tình yêu và sự ủng hộ của bạn bằng cách

Làm cách nào để trích xuất tên tệp từ đường dẫn trong PHP?

Hàm basename[] trả về tên tệp từ một đường dẫn.

Làm cách nào để lấy tên tệp PHP mà không cần phần mở rộng?

Bạn có thể sử dụng các hàm substr[] và strrpos[] để truy xuất tên tệp không có phần mở rộng trong PHP. $filename = 'tên tệp. php'; . "]];

Làm cách nào để lấy thông tin tệp trong PHP?

Hàm pathinfo[] trả về thông tin về đường dẫn tệp.

Làm cách nào để lấy tên tệp trang hiện tại trong PHP?

$_SERVER["PHP_SELF"]; sẽ cung cấp cho bạn tên tệp hiện tại và đường dẫn của nó, nhưng tên cơ sở[__FILE__] sẽ cung cấp cho bạn tên tệp mà nó được gọi từ đó. Hãy làm nó.

Chủ Đề