Hướng dẫn does fopen create a new file php? - fopen có tạo một tệp php mới không?

(Php 4, Php 5, Php 7, Php 8)

Fopen - Mở tệp hoặc URLOpens 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à $mode1) hỗ trợ các tùy chọn $mode2 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 $mode3 được sử dụng bởi trình bao bọc $mode4).

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.

$mode5

$mode6

Tham số $mode6 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 $mode6fopen() using $mode6
$mode6Sự mô tả
fopen (& nbsp; & nbsp; & nbsp; & nbsp; chuỗi ________ 0, & nbsp; & nbsp; ): Tài nguyên | SaiThô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à $mode1) hỗ trợ các tùy chọn $mode2 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 $mode3 được sử dụng bởi trình bao bọc $mode4).
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. $mode6fseek() has no effect, writes are always appended.
Tham số $mode6 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 $mode6fseek() only affects the reading position, writes are always appended.
$use_include_path0 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_path9. If the file does not exist, attempt to create it. This is equivalent to specifying false0 flags for the underlying false1 system call.
$use_include_path1 Mở để đọc và viết; Đặt con trỏ tệp ở đầu tệp.
$use_include_path2 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_path2 could truncate the file before the lock was obtained (if truncation is desired, ftruncate() can be used after the lock is requested).
$use_include_path3 Mở để đọc và viết; Nếu không, nó có hành vi tương tự như $use_include_path2.
$use_include_path5 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à $mode1) hỗ trợ các tùy chọn $mode2 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 $mode3 được sử dụng bởi trình bao bọc $mode4).

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 ($context4) sẽ dịch một cách minh bạch $context1 sang $context2 khi làm việc với tệp. Ngược lại, bạn cũng có thể sử dụng $context7 để 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 $context7 hoặc $context4 là ký tự cuối cùng của tham số $mode6.

Chế độ dịch mặc định là $context7. Bạn có thể sử dụng chế độ $context4 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 $context1 để 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 $context7 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ự $context2.

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ế độ $context4 để nó sử dụng chế độ dòng chính xác và chế độ $context7.

Lưu ý: $mode6 bị bỏ qua cho PHP: // đầu ra, php: // input, php: // stdin, php: // stdout, php: // stderr và php: // fd stream wrappers.: The $mode6 is ignored for php://output, php://input, php://stdin, php://stdout, php://stderr and php://fd stream wrappers.

null9

Tham số null9 thứ ba tùy chọn có thể được đặt thành '1' hoặc filename1 nếu bạn cũng muốn tìm kiếm tệp trong bao gồm_path.filename1 if you want to search for the file in the include_path, too.

$mode2

Mộ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_path9 được phát ra.$use_include_path9 is emitted.

Thay đổi

Phiên bảnSự mô tả
7.0.16, 7.1.2 Tùy chọn $context0 đã được thêm vào.

Ví dụ

Ví dụ #1 fopen () Ví dụfopen() examples

filename6

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 filename7. 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 filename8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm filename9, 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 filename9 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ế độ $context4 để nó sử dụng chế độ dòng chính xác và chế độ $context7.

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ế độ $context4 để nó sử dụng chế độ dòng chính xác và chế độ $context7.is_dir() function before calling fopen().

Lưu ý: $mode6 bị bỏ qua cho PHP: // đầu ra, php: // input, php: // stdin, php: // stdout, php: // stderr và php: // fd stream wrappers.

  • null9
  • Tham số null9 thứ ba tùy chọn có thể được đặt thành '1' hoặc filename1 nếu bạn cũng muốn tìm kiếm tệp trong bao gồm_path.
  • $mode2
  • 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_path9 được phát ra.
  • Thay đổi
  • Phiên bản
  • Sự mô tả
  • 7.0.16, 7.1.2
  • Tùy chọn $context0 đã được thêm vào.
  • Ví dụ
  • Ví dụ #1 fopen () Ví dụ

Ghi chú

Cảnh báo

filename2

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 filename7. 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 filename8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm filename9, 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ủ.

filename3

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

filename4

filename5

filename6

Các giao thức và giấy gói được hỗ trợ

fclose () - Đóng một con trỏ tệp mở

filename7

filename8

filename9

filename0

filename1

fgets () - 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ủ.

filename2

filename3

filename4

filename1

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

filename6

filename7

filename1

Các giao thức và giấy gói được hỗ trợ

fclose () - Đóng một con trỏ tệp mở

filename9

filename0

filename1

filename2

filename3

filename4

filename5

filename1

fgets () - Nhận dòng từ con trỏ tệp

fclose () - Đóng một con trỏ tệp mở

filename7

filename8

filename9

filename1

fgets () - Nhận dòng từ con trỏ tệp

fread () - Tệp an toàn nhị phân đọc

$mode01

$mode02

$mode03

filename1

fwrite () - Viết tệp an toàn nhị phân

fread () - Tệp an toàn nhị phân đọc

$mode05

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

$mode06

$mode07

$mode08

$mode09

$mode10

filename1

file () - đọc toàn bộ tệp vào một mảng

fclose () - Đóng một con trỏ tệp mở

$mode12

$mode13

$mode14

$mode15

fgets () - Nhận dòng từ con trỏ tệp

fread () - Tệp an toàn nhị phân đọc

$mode16

$mode17

$mode18

fwrite () - Viết tệp an toàn nhị phân

Cảnh báo

$mode19

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 filename7. 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 filename8 và sẽ triệt tiêu cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm filename9, 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

$mode20

$mode21

$mode22

$mode23

$mode24

filename1

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

$mode26

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

$mode28

Keithm tại Aoeex dot nospam dot com ¶

21 năm trước

$mode29

$mode30

$mode31

filename1

K-Gun tại git dot io ¶

3 năm trước

$mode33

$mode34

filename1

WVSS tại gmail dot com

6 tháng trước

filename4

filename5

filename6

Sean Downey

14 năm trước

$mode39

$mode40

$mode41

filename1

Khi sử dụng hàm fopen () để mở một tệp trong PHP, bạn nên sử dụng gì để nối dữ liệu vào tệp?

Để nối các tệp/tệp tệp vào tệp, chế độ hoặc chế độ A+ cần được đề cập trong hàm fopen () để xử lý dữ liệu tệp.a mode or a+ mode is needed to be mentioned in the fopen() function to handle the file data.

Tôi có thể tạo tệp PHP ở đâu?

Microsoft Word, Star Office Writer hoặc Abiword) để lưu hoặc tạo các tệp PHP.Các trình chỉnh sửa văn bản như Notepad hoặc WordPad trên máy Windows và Kwrite hoặc Kate trên máy Linux, là một lựa chọn tốt hơn.Khi lưu tệp, hãy đảm bảo rằng bạn nhập tên tệp và tiện ích mở rộng (ví dụ: kiểm tra.) to save or create PHP files. Text editors such as Notepad or Wordpad on Windows machines, and Kwrite or Kate on Linux machines, are a better option. When saving the file, make sure that you type in the file name and the extension (example: test.

Chức năng PHP nào kiểm tra sự tồn tại của tệp trước khi cố gắng mở nó?

Hàm file_exists () kiểm tra xem một tệp hoặc thư mục có tồn tại hay không.file_exists() function checks whether a file or directory exists.

FTP là gì?

fopen () liên kết một tài nguyên được đặt tên, được chỉ định bởi tên tệp, với một luồng.binds a named resource, specified by filename , to a stream.