As of PHP 5.6 the file[], file_get_contents[], and fopen[] functions will return false if you are referencing a source URL that doesn't have a valid SSL certificate. Presumably, you will run into this a lot in your development environments this will drive you crazy.
You will need to create a stream context and provide it as an argument to the various file operations to tell it to ignore invalid SSL credentials.
________số 8_______
$context = stream_context_create[$args];
$httpfile = file[$url, false, $context];
Sử dụng cơ chế xử lý tệp PHP, chúng tôi có thể lấy tài nguyên tệp bên ngoài để lưu trữ làm tài liệu tham khảo. Chúng tôi đã chạm một chút vào tài nguyên tệp trong khi thảo luận về Dữ liệu tài nguyên PHP
PHP cung cấp tập hợp các hàm dựng sẵn để xử lý tệp. Một số chức năng là, fopen[], file_exists[], file_get_contents[], v.v.
Một số thao tác cơ bản để xử lý tệp được liệt kê bên dưới
- mở tập tin
- Làm việc với tệp đọc, ghi và nối thêm
- đóng tập tin
mở tập tin
Để mở một tệp ta cần chỉ định tên tệp đó và chế độ. Chế độ hoạt động liên quan đến giới hạn truy cập của tệp sẽ được mở
Phương thức hoạt động
Trong xử lý tệp PHP, có bốn bộ chế độ có thể. Đó là,
- {r and r+} – Để đọc các tệp hiện có
- {w and w+} – Để thay đổi toàn bộ nội dung tập tin
- {a và a+} – Để thêm nội dung sau nội dung tệp hiện có
- {x and x+} – Để tạo một tệp mới và làm việc với nó
Đọc tập tin hiện có
Trong PHP, các loại hai chế độ xử lý tệp sau đây được sử dụng để đọc các tệp hiện có. Con trỏ tệp sẽ trỏ đến đầu tệp
Chế độ hoạt động Chế độ tệp Con trỏ tệp Định vị chỉ đọcBắt đầu nội dung tệp+đọc-ghiBắt đầu nội dung tệpSử dụng hàm fopen[], chúng ta có thể mở tệp theo tên và chế độ tương ứng. Ví dụ,
";
}
?>
Ghi chú. Chúng ta nên đảm bảo rằng tệp được chỉ định tồn tại. Nếu không sẽ xảy ra lỗi sau
Warning: fopen[hello.txt] [function.fopen]: failed to open stream: No such file or directory in ...
Warning: fgets[] expects parameter 1 to be resource, boolean given in ...
Viết vào một tập tin
Để thực hiện thao tác ghi ta có 2 lựa chọn là chọn chế độ mở file. Đó là,
Chế độ hoạt động Chế độ tệp Con trỏ tệp Vị trí chỉ ghiBằng cách sử dụng các chế độ này, toàn bộ nội dung tệp sẽ bị xóa và con trỏ sẽ tập trung vào vị trí bắt đầu của nội dung tệp. Phương pháp này được sử dụng để thay đổi hoàn toàn nội dung tệp hiện có
Ví dụ,
Nối nội dung vào tệp
Trong thao tác này, nội dung hiện có của tệp sẽ không bị xóa. Thay vào đó, chúng ta có thể thêm nội dung mới liên tục. Tại đây, con trỏ tệp sẽ trỏ đến cuối tệp. Và phương thức hoạt động có thể là,
Chế độ hoạt độngChế độ tệpCon trỏ tệpVị trí chỉ ghiaBắt đầu nội dung tệpa+đọc-ghiBắt đầu nội dung tệpMã sẽ tương tự như mã ghi tệp ngoại trừ chế độ được chỉ định để mở tệp. Ví dụ,
Ghi chú. Trong PHP, chế độ ghi và nối sẽ mở tệp được chỉ định nếu tồn tại. Nếu không, một tệp mới sẽ được tạo để thực hiện ghi và nối tệp
tạo một tập tin mới
Ở đây cũng có sẵn hai chế độ xử lý tệp được sử dụng để ghi vào một tệp mới được tạo
Chế độ hoạt độngChế độ tệpVị trí con trỏ tệpxwrite-only. –x+đọc-ghi. –Ví dụ,
thận trọng. đã tồn tại, thì quá trình thực thi sẽ bị dừng với lỗi sau
Warning: fopen[hello.txt] [function.fopen]: failed to open stream: File exists in .. on line ...
Warning: fwrite[] expects parameter 1 to be resource, boolean given in .. on line ...
Đóng tệp
Sau khi thực hiện tất cả các thao tác trên tệp của PHP, chúng ta cần đóng nó bằng cách sử dụng hàm fclose[]. hàm fclose[] sẽ giữ con trỏ tệp là tham chiếu cho tài nguyên tệp. Trong PHP, chúng ta có thể sử dụng hàm fclose[] như hình bên dưới
Khi chúng tôi phát triển một ứng dụng web bằng PHP, chúng tôi thường xuyên phải làm việc với các tệp bên ngoài, như đọc dữ liệu từ một tệp hoặc có thể ghi dữ liệu người dùng vào tệp, v.v. Vì vậy, điều quan trọng là phải biết cách các tệp được xử lý khi làm việc trên bất kỳ ứng dụng web nào
Thao tác xử lý tệp
Xử lý tệp bắt đầu bằng việc tạo tệp, đọc nội dung của tệp, ghi vào tệp để nối thêm dữ liệu vào tệp hiện có và cuối cùng là đóng tệp. Php cung cấp các chức năng được xác định trước cho tất cả các hoạt động này, vì vậy hãy bắt đầu bằng cách biết các chức năng này
- Tạo một tập tin.
fopen[]
- Mở tệp tin.
fopen[]
- Đọc một tập tin.
fread[]
- Ghi vào một tập tin.
fwrite[]
- Nối vào một tệp.
fwrite[]
- Đóng một tập tin.
fclose[]
- Xóa một tập tin.
unlink[]
Chắc hẳn bạn đang thắc mắc rằng tại sao chúng ta lại chỉ định các hàm giống nhau cho nhiều thao tác trên tệp, đó là bởi vì chỉ bằng cách thay đổi một hoặc nhiều đối số, cùng một hàm có thể được sử dụng để thực hiện nhiều thao tác trên tệp