[Php 4, Php 5, Php 7, Php 8]
Fopen - Mở tệp hoặc URL — Opens file or URL
Sự mô tả
fopen [& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 0, & nbsp; & nbsp; ]: Tài nguyên | Sai[
string $filename
,
string $mode
,
bool $use_include_path
=
false
,
?resource $context
= null
]: resource|false
Thông số
filename
Nếu filename
có dạng "Sơ đồ: // ...", thì nó được coi là URL và PHP sẽ tìm kiếm một trình xử lý giao thức [còn được gọi là trình bao bọc] cho sơ đồ đó. Nếu không có trình bao bọc cho giao thức đó được đăng ký, PHP sẽ phát ra thông báo để giúp bạn theo dõi các vấn đề tiềm năng trong tập lệnh của mình và sau đó tiếp tục như thể filename
chỉ định một tệp thông thường.
Nếu PHP đã quyết định rằng filename
chỉ định một tệp cục bộ, thì nó sẽ cố gắng mở một luồng trên tệp đó. Tệp phải có thể truy cập được vào PHP, vì vậy bạn cần đảm bảo rằng các quyền truy cập tệp cho phép truy cập này. Nếu bạn đã kích hoạt các hạn chế thêm Open_basingir có thể áp dụng.
Nếu PHP đã quyết định rằng filename
chỉ định một giao thức đã đăng ký và giao thức đó được đăng ký dưới dạng URL mạng, PHP sẽ kiểm tra để đảm bảo rằng cho phép cho phép được bật. Nếu nó bị tắt, PHP sẽ phát ra cảnh báo và cuộc gọi Fopen sẽ thất bại.
Ghi chú::
Danh sách các giao thức được hỗ trợ có thể được tìm thấy trong các giao thức và trình bao bọc được hỗ trợ. Một số giao thức [còn được gọi là
$mode
1] hỗ trợ các tùy chọn$mode
2 và/hoặc php.ini. Tham khảo trang cụ thể cho giao thức được sử dụng để biết danh sách các tùy chọn có thể được đặt. [ví dụ: giá trị php.ini$mode
3 được sử dụng bởi trình bao bọc$mode
4].
Trên nền tảng Windows, hãy cẩn thận để thoát khỏi bất kỳ dấu gạch chéo ngược nào được sử dụng trong đường dẫn đến tệp hoặc sử dụng dấu gạch chéo phía trước.
$mode
5
$mode
6 Tham số $mode
6 chỉ định loại truy cập bạn yêu cầu vào luồng. Nó có thể là bất kỳ điều nào sau đây:
$mode
6fopen[] using $mode
6fopen [& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 0, & nbsp; & nbsp; ]: Tài nguyên | Sai | Thông số |
filename | Nếu filename có dạng "Sơ đồ: // ...", thì nó được coi là URL và PHP sẽ tìm kiếm một trình xử lý giao thức [còn được gọi là trình bao bọc] cho sơ đồ đó. Nếu không có trình bao bọc cho giao thức đó được đăng ký, PHP sẽ phát ra thông báo để giúp bạn theo dõi các vấn đề tiềm năng trong tập lệnh của mình và sau đó tiếp tục như thể filename chỉ định một tệp thông thường. |
Nếu PHP đã quyết định rằng filename chỉ định một tệp cục bộ, thì nó sẽ cố gắng mở một luồng trên tệp đó. Tệp phải có thể truy cập được vào PHP, vì vậy bạn cần đảm bảo rằng các quyền truy cập tệp cho phép truy cập này. Nếu bạn đã kích hoạt các hạn chế thêm Open_basingir có thể áp dụng. | Nếu PHP đã quyết định rằng filename chỉ định một giao thức đã đăng ký và giao thức đó được đăng ký dưới dạng URL mạng, PHP sẽ kiểm tra để đảm bảo rằng cho phép cho phép được bật. Nếu nó bị tắt, PHP sẽ phát ra cảnh báo và cuộc gọi Fopen sẽ thất bại. |
Ghi chú: | Danh sách các giao thức được hỗ trợ có thể được tìm thấy trong các giao thức và trình bao bọc được hỗ trợ. Một số giao thức [còn được gọi là $mode 1] hỗ trợ các tùy chọn $mode 2 và/hoặc php.ini. Tham khảo trang cụ thể cho giao thức được sử dụng để biết danh sách các tùy chọn có thể được đặt. [ví dụ: giá trị php.ini $mode 3 được sử dụng bởi trình bao bọc $mode 4]. |
Trên nền tảng Windows, hãy cẩn thận để thoát khỏi bất kỳ dấu gạch chéo ngược nào được sử dụng trong đường dẫn đến tệp hoặc sử dụng dấu gạch chéo phía trước. | $mode 6fseek[] has no effect, writes are always appended.
|
Tham số $mode 6 chỉ định loại truy cập bạn yêu cầu vào luồng. Nó có thể là bất kỳ điều nào sau đây: | Danh sách các chế độ có thể cho fopen [] sử dụng $mode 6fseek[] only affects the reading position, writes are always appended.
|
$use_include_path 0 | Chỉ mở để đọc; Đặt con trỏ tệp ở đầu tệp.fopen[] call will fail by returning false and generating an error of level $use_include_path 9. If the file does not exist, attempt to create it. This is equivalent to specifying false 0 flags for the underlying false 1 system call.
|
$use_include_path 1 | Mở để đọc và viết; Đặt con trỏ tệp ở đầu tệp. |
$use_include_path 2 | Chỉ mở để viết; Đặt con trỏ tệp ở đầu tệp và cắt tệp về độ dài bằng không. Nếu tệp không tồn tại, hãy cố gắng tạo nó.flock[]] before attempting to modify the file, as using $use_include_path 2
could truncate the file before the lock was obtained [if truncation is desired, ftruncate[] can be used after the lock is requested].
|
$use_include_path 3 | Mở để đọc và viết; Nếu không, nó có hành vi tương tự như $use_include_path 2. |
$use_include_path 5 | Chỉ mở để viết; Đặt con trỏ tệp ở cuối tệp. Nếu tệp không tồn tại, hãy cố gắng tạo nó. Trong chế độ này, FSEEK [] không có hiệu lực, ghi luôn được thêm vào. |
Ghi chú::
Danh sách các giao thức được hỗ trợ có thể được tìm thấy trong các giao thức và trình bao bọc được hỗ trợ. Một số giao thức [còn được gọi là
$mode
1] hỗ trợ các tùy chọn$mode
2 và/hoặc php.ini. Tham khảo trang cụ thể cho giao thức được sử dụng để biết danh sách các tùy chọn có thể được đặt. [ví dụ: giá trị php.ini$mode
3 được sử dụng bởi trình bao bọc$mode
4].Trên nền tảng Windows, hãy cẩn thận để thoát khỏi bất kỳ dấu gạch chéo ngược nào được sử dụng trong đường dẫn đến tệp hoặc sử dụng dấu gạch chéo phía trước.
Windows cung cấp cờ dịch chế độ văn bản [
$context
4] sẽ dịch một cách minh bạch$context
1 sang$context
2 khi làm việc với tệp. Ngược lại, bạn cũng có thể sử dụng$context
7 để buộc chế độ nhị phân, sẽ không dịch dữ liệu của bạn. Để sử dụng các cờ này, chỉ định$context
7 hoặc$context
4 là ký tự cuối cùng của tham số$mode
6.Chế độ dịch mặc định là
$context
7. Bạn có thể sử dụng chế độ$context
4 nếu bạn đang làm việc với các tệp văn bản đơn giản và bạn sử dụng$context
1 để phân định các kết thúc dòng của bạn trong tập lệnh của bạn, nhưng mong đợi các tệp của bạn có thể đọc được với các ứng dụng như phiên bản cũ của Notepad. Bạn nên sử dụng$context
7 trong tất cả các trường hợp khác.Nếu bạn chỉ định cờ 'T' khi làm việc với các tệp nhị phân, bạn có thể gặp phải sự cố lạ với dữ liệu của mình, bao gồm các tệp hình ảnh bị hỏng và các sự cố lạ với các ký tự
$context
2.
Ghi chú::
Đối với tính di động, bạn cũng khuyên bạn nên viết lại mã sử dụng hoặc dựa vào chế độ
$context
4 để nó sử dụng chế độ dòng chính xác và chế độ$context
7.
Lưu ý:
$mode
6 bị bỏ qua cho PHP: // đầu ra, php: // input, php: // stdin, php: // stdout, php: // stderr và php: // fd stream wrappers.: The$mode
6 is ignored for php://output, php://input, php://stdin, php://stdout, php://stderr and php://fd stream wrappers.
null
9 Tham số null
9 thứ ba tùy chọn có thể được đặt thành '1' hoặc filename
1 nếu bạn cũng muốn tìm kiếm tệp trong bao gồm_path.filename
1 if you want to search for the file in the include_path, too.
$mode
2Một tài nguyên luồng ngữ cảnh.resource.
Trả về giá trị
Trả về một tài nguyên con trỏ tệp thành công hoặc false
về lỗifalse
on failure
Errors/Exceptions
Sau khi thất bại, một $use_include_path
9 được phát ra.$use_include_path
9 is emitted.
Thay đổi
7.0.16, 7.1.2 | Tùy chọn $context 0 đã được thêm vào. |
Ví dụ
Ví dụ #1 fopen [] Ví dụfopen[] examples
filename
6
Ghi chú
Cảnh báo
Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo filename
7. PHP sẽ báo cáo đây là "SSL: Lỗi giao thức gây tử vong" khi bạn đạt đến cuối dữ liệu. Để làm việc xung quanh điều này, giá trị của error_Reporting nên được hạ xuống mức không bao gồm các cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS Buggy khi bạn mở luồng bằng trình bao bọc filename
8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen [] để tạo ổ cắm filename
9, nhà phát triển có trách nhiệm phát hiện và ngăn chặn cảnh báo này.fsockopen[] to
create an filename
9 socket, the developer is responsible for detecting and suppressing this warning.
Ghi chú::
Đối với tính di động, bạn cũng khuyên bạn nên viết lại mã sử dụng hoặc dựa vào chế độ
$context
4 để nó sử dụng chế độ dòng chính xác và chế độ$context
7.
Ghi chú::
Đối với tính di động, bạn cũng khuyên bạn nên viết lại mã sử dụng hoặc dựa vào chế độ
$context
4 để nó sử dụng chế độ dòng chính xác và chế độ$context
7.is_dir[] function before calling fopen[].
Lưu ý: $mode
6 bị bỏ qua cho PHP: // đầu ra, php: // input, php: // stdin, php: // stdout, php: // stderr và php: // fd stream wrappers.
-
null
9 - Tham số
null
9 thứ ba tùy chọn có thể được đặt thành '1' hoặcfilename
1 nếu bạn cũng muốn tìm kiếm tệp trong bao gồm_path. -
$mode
2 - Một tài nguyên luồng ngữ cảnh.
- Trả về giá trị
- Trả về một tài nguyên con trỏ tệp thành công hoặc
false
về lỗi - Sau khi thất bại, một
$use_include_path
9 được phát ra. - Thay đổi
- Phiên bản
- Sự mô tả
- 7.0.16, 7.1.2
- Tùy chọn
$context
0 đã được thêm vào. - Ví dụ
- Ví dụ #1 fopen [] Ví dụ
Ghi chú ¶
Cảnh báo
filename
2
Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo filename
7. PHP sẽ báo cáo đây là "SSL: Lỗi giao thức gây tử vong" khi bạn đạt đến cuối dữ liệu. Để làm việc xung quanh điều này, giá trị của error_Reporting nên được hạ xuống mức không bao gồm các cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS Buggy khi bạn mở luồng bằng trình bao bọc filename
8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen [] để tạo ổ cắm filename
9, nhà phát triển có trách nhiệm phát hiện và ngăn chặn cảnh báo này. ¶
Nếu bạn đang gặp vấn đề với việc đọc và ghi vào các tệp và bạn đang sử dụng phiên bản mô -đun máy chủ của PHP, hãy nhớ để đảm bảo rằng các tệp và thư mục bạn đang sử dụng có thể truy cập vào quy trình máy chủ.
filename
3
Hàm này cũng có thể thành công khi filename
là một thư mục. Nếu bạn không chắc chắn liệu filename
là tệp hay thư mục, bạn có thể cần sử dụng hàm is_dir [] trước khi gọi fopen []. ¶
Xem thêm
filename
4
filename
5
filename
6Các giao thức và giấy gói được hỗ trợ ¶
fclose [] - Đóng một con trỏ tệp mở
filename
7
filename
8
filename
9
filename
0
filename
1fgets [] - Nhận dòng từ con trỏ tệp ¶
Nếu bạn đang gặp vấn đề với việc đọc và ghi vào các tệp và bạn đang sử dụng phiên bản mô -đun máy chủ của PHP, hãy nhớ để đảm bảo rằng các tệp và thư mục bạn đang sử dụng có thể truy cập vào quy trình máy chủ.
filename
2
filename
3
filename
4
filename
1
Hàm này cũng có thể thành công khi filename
là một thư mục. Nếu bạn không chắc chắn liệu filename
là tệp hay thư mục, bạn có thể cần sử dụng hàm is_dir [] trước khi gọi fopen []. ¶
Xem thêm
filename
6
filename
7
filename
1Các giao thức và giấy gói được hỗ trợ ¶
fclose [] - Đóng một con trỏ tệp mở
filename
9
filename
0
filename
1
filename
2
filename
3
filename
4
filename
5
filename
1fgets [] - Nhận dòng từ con trỏ tệp ¶
fclose [] - Đóng một con trỏ tệp mở
filename
7
filename
8
filename
9
filename
1fgets [] - Nhận dòng từ con trỏ tệp ¶
fread [] - Tệp an toàn nhị phân đọc
$mode
01
$mode
02
$mode
03
filename
1fwrite [] - Viết tệp an toàn nhị phân ¶
fread [] - Tệp an toàn nhị phân đọc
$mode
05
fwrite [] - Viết tệp an toàn nhị phân ¶
fsockopen [] - Mở Internet hoặc kết nối ổ cắm tên miền UNIX
$mode
06
$mode
07
$mode
08
$mode
09
$mode
10
filename
1file [] - đọc toàn bộ tệp vào một mảng ¶
fclose [] - Đóng một con trỏ tệp mở
$mode
12
$mode
13
$mode
14
$mode
15fgets [] - Nhận dòng từ con trỏ tệp ¶
fread [] - Tệp an toàn nhị phân đọc
$mode
16
$mode
17
$mode
18fwrite [] - Viết tệp an toàn nhị phân ¶
Cảnh báo
$mode
19
Khi sử dụng SSL, Microsoft IIS sẽ vi phạm giao thức bằng cách đóng kết nối mà không gửi chỉ báo filename
7. PHP sẽ báo cáo đây là "SSL: Lỗi giao thức gây tử vong" khi bạn đạt đến cuối dữ liệu. Để làm việc xung quanh điều này, giá trị của error_Reporting nên được hạ xuống mức không bao gồm các cảnh báo. PHP có thể phát hiện phần mềm máy chủ IIS Buggy khi bạn mở luồng bằng trình bao bọc filename
8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen [] để tạo ổ cắm filename
9, nhà phát triển có trách nhiệm phát hiện và ngăn chặn cảnh báo này. ¶
fread [] - Tệp an toàn nhị phân đọc
$mode
20
$mode
21
$mode
22
$mode
23
$mode
24
filename
1fwrite [] - Viết tệp an toàn nhị phân ¶
fsockopen [] - Mở Internet hoặc kết nối ổ cắm tên miền UNIX
$mode
26
file [] - đọc toàn bộ tệp vào một mảng ¶
fsockopen [] - Mở Internet hoặc kết nối ổ cắm tên miền UNIX
file [] - đọc toàn bộ tệp vào một mảng
file_exists [] - Kiểm tra xem tệp hoặc thư mục có tồn tại không ¶
10 năm trước
$mode
28
Keithm tại Aoeex dot nospam dot com ¶ ¶
21 năm trước
$mode
29
$mode
30
$mode
31
filename
1K-Gun tại git dot io ¶ ¶
3 năm trước
$mode
33
$mode
34
filename
1WVSS tại gmail dot com ¶
6 tháng trước
filename
4
filename
5
filename
6Sean Downey ¶
14 năm trước
$mode
39
$mode
40
$mode
41
filename
1