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 Facebook và Twitter để 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
- $imagePath="{file-path}/filename.png";
- $ext=pathinfo[$imagePath, PATHINFO_EXTENSION];
- $file=basename[$imagePath,".".$ext];
- 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
Vì
// 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
Vì
// 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
// root directory with file echo basename['/foo.txt']; // 'foo.txt'
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