Định Nghĩa và cách sử dụng.
Hàm fopen () dùng để mở tệp hoặc URL. – Lưu ý: Khi ghi vào tệp văn bản, hãy đảm bảo sử dụng đúng ký tự kết thúc dòng! Các hệ thống Unix sử dụng \ n, các hệ thống Windows sử dụng \ r \ n và các hệ thống Macintosh sử dụng \ r làm ký tự kết thúc dòng. Windows cung cấp cờ dịch (‘t’) sẽ dịch \ n sang \ r \ n khi làm việc với tệp. Bạn cũng có thể sử dụng ‘b’ để buộc chế độ nhị phân. Để sử dụng các cờ này, chỉ định ‘b’ hoặc ‘t’ là ký tự cuối cùng của tham số chế độ.
Cú pháp.
Cú pháp:
fopen ( string $filename
, string $mode
[, bool $use_include_path
= FALSE
[, resource $context
]] ) : resource
Trong đó.
Giá trị trả về.
- TRUE về thành công, FALSE và một lỗi về thất bại. Bạn có thể ẩn lỗi bằng cách thêm “@” vào trước tên hàm.
Sự thay đổi.
- PHP 7.1: Đã thêm tùy chọn “e”
- PHP 5.2: Đã thêm tùy chọn “c” và “c +”
Ví dụ.
Ví dụ # 1 fopen ()
code:
<?php
$handle = fopen("/home/rasmus/file.txt", "r");
$handle = fopen("/home/rasmus/file.gif", "wb");
$handle = fopen("http://www.example.com/", "r");
$handle = fopen("ftp://user:[email protected]/somefile.txt", "w");
?>
Ghi chú.
- Các hệ điều hành khác nhau có các quy ước kết thúc dòng khác nhau. Khi bạn viết một tệp văn bản và muốn chèn ngắt dòng, bạn cần sử dụng (các) ký tự kết thúc dòng chính xác cho hệ điều hành của mình. Các hệ thống dựa trên Unix sử dụng \ n làm ký tự kết thúc dòng, các hệ thống dựa trên Windows sử dụng \ r \ n làm ký tự kết thúc dòng và hệ thống dựa trên Macintosh (Mac OS Classic) đã sử dụng \ r làm ký tự kết thúc dòng. – Nếu bạn sử dụng sai ký tự kết thúc dòng khi viết tệp của mình, bạn có thể thấy rằng các ứng dụng khác mở các tệp đó sẽ “trông buồn cười”. – Windows cung cấp cờ dịch chế độ văn bản (‘t’) sẽ dịch trong suốt \ n sang \ r \ n khi làm việc với tệp. Ngược lại, bạn cũng có thể sử dụng ‘b’ để 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 ‘b’ hoặc ‘t’ là ký tự cuối cùng của tham số chế độ. – Chế độ dịch mặc định là ‘b’. Bạn có thể sử dụng chế độ ‘t’ nếu bạn đang làm việc với các tệp văn bản thuần túy và bạn sử dụng \ n để phân định các kết thúc dòng trong tập lệnh của mình, nhưng hy vọng các tệp của bạn có thể đọc được bằng các ứng dụng như phiên bản notepad cũ. Bạn nên sử dụng ‘b’ 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 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ự \ r \ n.
- Đối với tính di động, chúng tôi khuyên bạn nên viết lại mã sử dụng hoặc dựa vào chế độ ‘t’ để nó sử dụng kết thúc dòng chính xác và chế độ ‘b’.
- 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 close_notify. PHP sẽ báo cáo đây là “SSL: Lỗi giao thức nghiêm trọng” khi bạn đến cuối dữ liệu. Để giải quyết vấn đề này, giá trị của error_Vporting 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 bị lỗi khi bạn mở luồng bằng cách sử dụng trình bao bọc https: // và sẽ chặn cảnh báo. Khi sử dụng fsockopen () để tạo ổ cắm ssl: //, nhà phát triển có trách nhiệm phát hiện và triệt tiêu cảnh báo này.
- Lưu ý: Khi safe mode được bật, PHP sẽ kiểm tra xem thư mục mà tập lệnh đang hoạt động có cùng UID (chủ sở hữu) với tập lệnh đang được thực thi hay không.
- Nếu bạn gặp vấn đề với việc đọc và ghi vào 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 được vào quy trình máy chủ.
- Chức năng này cũng có thể thành công khi tên tệp là một thư mục. Nếu bạn không chắc tên tệp 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 ().
Hàm liên quan.
Thông tin thêm.
- Lưu ý – sử dụng fopen trong chế độ ‘w’ sẽ KHÔNG cập nhật thời gian sửa đổi (thời gian quay phim) của tệp như bạn mong đợi. Bạn có thể muốn đưa ra một liên lạc () sau khi viết và đóng tệp cập nhật thời gian sửa đổi của nó. Điều này có thể trở nên quan trọng trong một tình huống lưu trữ, nếu bạn có ý định giữ tóc của bạn. Điều này có lẽ cần thử nghiệm thêm, nhưng nó dường như hoạt động giống hệt với việc thực hiện fnmatch riêng.
- Với php 5.2.5 trên Apache 2.2.4, việc truy cập các tệp trên máy chủ ftp bằng fopen () hoặc readfile () yêu cầu thêm một chuyển tiếp nếu cần một đường dẫn tuyệt đối. tức là, nếu một tệp có tên bullbes.txt được lưu trữ trong / var / school / trên ftp server example.com và bạn đang cố truy cập nó với người dùng hoa và mật khẩu buttercup, url sẽ là: ftp://blossom:[email protected]//var/school/bubbles.txt Lưu ý two forwardslashe. Có vẻ như cái thứ hai là cần thiết vì vậy máy chủ sẽ không diễn giải đường dẫn liên quan đến nhà của hoa trên thị trấn.
Các bạn có thể xem chi tiết hơn trên php.net.
Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm fopen() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com
Bình luận: