Hướng dẫn what are two ways you can write data to a file in php? - hai cách bạn có thể ghi dữ liệu vào một tệp trong php là gì?

Trong hướng dẫn này, bạn sẽ tìm hiểu một số chức năng quan trọng trong PHP đủ cho tất cả các nhu cầu đọc và ghi tệp cơ bản của bạn. Bạn sẽ tìm hiểu cách đọc một tệp, ghi vào một tệp, ghi vào tệp văn bản và kiểm tra xem tệp có tồn tại không.

Xử lý tệp là một cái gì đó mà bạn sẽ cần phải làm rất thường xuyên với tư cách là nhà phát triển PHP.

Bạn có thể sử dụng các chức năng xử lý tệp PHP để thao tác các tệp theo những cách khác nhau. Các chức năng này có thể được sử dụng để xây dựng các tính năng trong các ứng dụng của bạn bao gồm từ đăng nhập lỗi tùy chỉnh đến lưu trữ các tệp được lưu trữ. Ví dụ về các công cụ tiện ích mà bạn có thể xây dựng với các chức năng này là:

  • Công cụ ghi nhật ký và gỡ lỗi tùy chỉnh
  • Lưu trữ cấu hình ứng dụng
  • Bộ đệm ứng dụng và bộ nhớ đệm ứng dụng
  • Hỗ trợ nội địa hóa
  • và nhiều cái khác

May mắn thay, PHP cung cấp rất nhiều chức năng để đọc và ghi dữ liệu vào các tệp. Trong hướng dẫn này, tôi sẽ chỉ cho bạn những cách dễ nhất để đọc dữ liệu từ tệp cục bộ hoặc từ xa và cách sử dụng cờ để ghi vào các tệp chính xác theo cách chúng tôi muốn.

Tiết diệnChức năng chính
Kiểm tra xem một tệp có tồn tại không file_exists(), is_file()
Đọc dữ liệu từ một tệp trong PHPfile_get_contents()
Ghi dữ liệu vào một tệp trong PHP
0
Ví dụ về dữ liệu đọc và ghi file_get_contents(),
0
Đọc và ghi vào các tập tin có luồng
3, 
4, 
5

Kiểm tra xem một tệp có tồn tại không

Bước đầu tiên của bạn khi cố gắng đọc dữ liệu từ một tệp hoặc ghi một cái gì đó cho nó là kiểm tra xem tệp đã tồn tại. Cố gắng đọc dữ liệu từ một tệp không tồn tại sẽ dẫn đến cảnh báo từ PHP và có thể sẽ làm hỏng mã của bạn.

Cách dễ nhất để kiểm tra xem một tệp có tồn tại là sử dụng hàm PHP

6 hay không. Nó sẽ trả về 
7 nếu một tệp hoặc thư mục với 
8 đã cho và 
9 khác. Điều này có thể rõ ràng, nhưng tôi muốn chỉ ra rằng & nbsp; ________ 18 không phải là tên của một tệp. Nó cũng có thể là một con đường tuyệt đối hoặc tương đối. Ví dụ: chúng ta có thể sử dụng & nbsp; Prime_numbers.txt hoặc Science/Project/định kỳ_table.txt.prime_numbers.txt or science/project/periodic_table.txt.

Điều quan trọng cần nhớ là chức năng này cũng sẽ trả về

9 cho các tệp không thể truy cập do hạn chế chế độ an toàn.safe mode restrictions.

Một chức năng khác mà bạn có thể sử dụng để kiểm tra sự tồn tại của tệp là is_file(). Trái ngược với file_exists(), chức năng này sẽ chỉ trả về

7 nếu đường dẫn được chỉ định chỉ vào một tệp và không phải là thư mục.

Đảm bảo rằng tệp thực sự tồn tại

Nếu mã bạn đang viết thực hiện rất nhiều hoạt động tệp trên một tệp cụ thể, bạn có thể nhận được kết quả không chính xác bằng cách sử dụng các chức năng trên. Điều này là do kết quả thực hiện cả file_exists()is_file() được lưu trữ để cải thiện hiệu suất. PHP cũng lưu trữ các giá trị được trả về bởi các hàm hệ thống tập tin khác như

7, 
8, v.v.

Bạn có thể gọi

9 để đảm bảo rằng mọi thông tin bạn đang truy cập cho một tệp đều được cập nhật.

Đây thường chỉ là một vấn đề nếu cùng một tệp được truy cập nhiều lần trong một tập lệnh để biết trạng thái của nó. Ngoài ra, dữ liệu được lưu trong bộ nhớ cache được xóa nếu bạn xóa tệp bên trong tập lệnh bằng hàm

0. Điều này về cơ bản có nghĩa là bạn có thể sẽ không phải đối mặt với bất kỳ vấn đề liên quan đến bộ đệm nào, nhưng vẫn tốt khi biết rằng bạn có thể xóa bộ đệm trong trường hợp thông tin bị cũ hoặc nếu bạn nhận được kết quả bất ngờ khi cố gắng truy cập thông tin về một tệp .

Đọc dữ liệu từ một tệp trong PHP

Hàm file_get_contents()

Một trong những cách dễ nhất để đọc dữ liệu từ một tệp trong PHP là với sự trợ giúp của & nbsp; Hàm

2. Nó sẽ chỉ cần đọc toàn bộ tệp và đưa nó cho bạn dưới dạng một chuỗi. Tất cả các tham số ngoại trừ cái đầu tiên là tùy chọn.

Tham số thứ hai chấp nhận giá trị boolean để xác định xem nó có nên tìm một tệp trong vị trí được chỉ định bởi & nbsp; bao gồm đường dẫn, có thể được đặt bằng hàm

3.

Bạn có thể sử dụng tham số thứ ba để chỉ định một loạt các tùy chọn để tinh chỉnh cách truy cập các tệp. Bạn có thể sử dụng nó để chỉ định các giá trị tiêu đề như

4 và 
5, cũng như phương thức HTTP.

Tham số

6 xác định điểm đọc bắt đầu trên tệp gốc. Cung cấp một giá trị âm sẽ bắt đầu đếm từ cuối. Hỗ trợ cho các độ bù âm chỉ được thêm vào trong Php 7.1.0. Điều đáng chú ý là Offset chỉ hoạt động với các tệp cục bộ và không được hỗ trợ cho các tệp từ xa. & NBSP;

Hàm file_get_contents() đọc toàn bộ tệp cùng một lúc theo mặc định. Bạn có thể thay đổi hành vi này bằng cách cung cấp một giá trị cho tham số

8. Độ dài của các ký tự được đọc được tính từ giá trị bù.

Hàm file_get_contents() đọc toàn bộ tệp cùng một lúc theo mặc định. Bạn có thể thay đổi hành vi này bằng cách cung cấp một giá trị cho tham số

8. Độ dài của các ký tự được đọc được tính từ giá trị bù.

Bạn có thể sử dụng chức năng này để mở các tệp từ xa, nhưng điều đó chỉ có thể xảy ra nếu giá trị của tùy chọn & nbsp; ________ 41 trong php.ini là

7 hoặc 
3.php.ini is 
7 or 
3.

Ghi dữ liệu vào một tệp trong PHP

Hàm 4

Một trong những cách dễ nhất để ghi dữ liệu vào một tệp trong PHP là với sự trợ giúp của chức năng & nbsp; ____ 45.

Tham số

8 xác định tệp trong đó dữ liệu sẽ được viết. Tham số thứ hai là dữ liệu mà bạn muốn ghi vào tệp. Hầu hết thời gian nó sẽ là một chuỗi, nhưng nó cũng có thể là một mảng hoặc tài nguyên luồng. & NBSP;

Hãy nhớ rằng PHP sẽ tự động tạo một tệp có tên đã cho cho bạn nếu nó chưa tồn tại. Tuy nhiên, nó sẽ không tạo ra bất kỳ thư mục nào cho bạn. Điều này có nghĩa là bạn có thể lưu trữ một tệp có tên về nguồn gốc của các loài [Charles Darwin] .txt & nbsp; không có bất kỳ lỗi nào. Tuy nhiên, cài đặt

8 thành & nbsp; Sinh học/Sự tiến hóa/Về nguồn gốc của các loài [Charles Darwin] .txt, nếu sinh học/tiến hóa/không tồn tại, sẽ dẫn đến một lỗi.On the Origin of Species [Charles Darwin].txt without any error. However, setting
8 to  Biology/Evolution/On the Origin of Species [Charles Darwin].txt, if Biology/Evolution/ doesn't already exist, will result in an error.

Tham số

8 xác định cách ghi nội dung vào tệp. Nó có thể có bất kỳ hoặc tất cả ba giá trị sau:

  • ________ 49, Điều này bảo PHP tìm kiếm tên tệp đã cho trong thư mục bao gồm.
  • ________ 50, Điều này sẽ bảo PHP nối dữ liệu bạn đã truyền vào hàm cho dữ liệu hiện có trong tệp. Nó có thể hữu ích nếu bạn đang lưu trữ dữ liệu trong một tệp như nhật ký hoặc nhật ký cá nhân. Ghi lại dữ liệu mới như nhiệt độ hoặc sự kiện xảy ra với bạn hôm nay sẽ không ghi đè lên thứ gì đó bạn đã ghi ngày hôm qua.—This will tell PHP to append the data you passed to the function to the existing data in the file. It could be useful if you are storing data in a file like a log or a personal diary. Recording new data like temperature or events that happened to you today won't overwrite something you recorded yesterday.
  • ________ 51, Điều này sẽ nói với PHP để có một khóa trên tệp trước khi bắt đầu viết nội dung vào đó. Nó có thể ngăn những điều bất ngờ xảy ra khi hai tập lệnh khác nhau đang đọc hoặc ghi dữ liệu vào cùng một tệp. Với giá trị cụ thể này, bạn sẽ nhận được một khóa độc quyền trên tệp. Bạn có thể đọc thêm về các khóa này trong tài liệu PHP của hàm
    2.
    —This will tell PHP to get a lock on the file before starting to write content into it. It can prevent unexpected things from happening when two different scripts are reading or writing data to the same file. With this particular value, you will get an exclusive lock on the file. You can read more about these locks in the PHP documentation of the
    2 function.

Hàm này trả về số lượng byte được ghi vào tệp thành công và

9 khi thất bại. Tuy nhiên, bạn vẫn phải sử dụng toán tử bình đẳng nghiêm ngặt để kiểm tra xem nó có thành công trong việc viết nội dung vào tệp không. Đó là bởi vì mã ghi 0 byte vào tệp vẫn sẽ đánh giá sai.

Ví dụ về dữ liệu đọc và ghi

Trong phần này, chúng tôi sẽ xem xét một vài ví dụ trong thế giới thực để chứng minh cách bạn có thể đọc các tệp.

Hàm
4

Bạn có thể truy cập trang web Project Gutenberg và cố gắng tải xuống các tệp bằng & NBSP; Chức năng file_get_contents(). Khi bạn có dữ liệu trong một chuỗi, bạn cũng có thể chỉ cần lưu trữ nó trong một tệp cục bộ bằng hàm

0. Ví dụ sau đây sẽ làm cho điều này rõ ràng:

Bạn có thể lưu các trang web hoặc nội dung từ các trang web như Wikipedia theo cách tương tự. Nếu bạn cần hiểu được HTML hoặc phân tích nội dung HTML mà bạn vừa lưu cục bộ, bạn có thể làm theo hướng dẫn như phân tích cú pháp HTML với PHP bằng cách sử dụng Didom, điều này sẽ hỗ trợ bạn tự động nhận liên kết, tệp hình ảnh hoặc bất kỳ thông tin nào khác đó từ trang web.

Hãy quay lại các tệp cục bộ ngay bây giờ. Hãy xem xét một tình huống mà bạn có một loạt các tệp văn bản và bạn muốn phân tích nội dung của chúng để xem những thứ như từ phổ biến nhất trong đó. Điều này có thể đạt được dễ dàng bằng một loạt các chức năng PHP tích hợp.

Chúng tôi đã chuyển đổi tất cả các văn bản thành chữ thường và đưa ra giả định rằng mỗi từ bị phá vỡ ở khoảng trắng. Văn bản sau đó được chuyển đổi thành một mảng bằng cách sử dụng

7 để giúp phân tích các từ riêng lẻ dễ dàng hơn. Đáng ngạc nhiên, từ "tiến hóa" không được sử dụng ngay cả một lần trong toàn bộ cuốn sách đưa ra lý thuyết về sự tiến hóa của nó. & Nbsp;

Đây chỉ là một ví dụ về việc tự động phân tích một lượng lớn văn bản. Bạn có thể làm một cái gì đó tương tự với bất kỳ loại văn bản được lưu trữ trong một tệp.

Đăng nhập dữ liệu với
0

Một ví dụ hữu ích hơn sẽ là ghi nhật ký thông tin trong các khoảng thời gian nhỏ. Đó có thể là thói quen tập thể dục, dữ liệu thời tiết hoặc thuộc địa ong mà bạn đang quan sát. Khi bạn có dữ liệu trong một chuỗi, bạn có thể dễ dàng lưu trữ nó trong một tệp và nối nó vào dữ liệu hiện có bằng cờ

0 với 
0.

Mã tương tự có thể được sử dụng cho một cái gì đó như lưu trữ bài viết nổi bật trong ngày của Wikipedia trong một tập tin mỗi ngày hoặc theo dõi các bài báo và tiêu đề tin tức trong suốt nhiều tuần hoặc vài tháng. Tất cả những gì bạn cần làm là viết mã để cạo dữ liệu và sau đó lưu trữ nó bằng cách sử dụng một cái gì đó tương tự như đoạn mã trên. Một hướng dẫn như phân tích cú pháp HTML với PHP bằng cách sử dụng Didom có ​​thể giúp bạn với phần cạo.

Thay vì viết văn bản ở định dạng đơn giản, bạn có thể bọc nó trong một số HTML để giúp đọc các trình duyệt dễ dàng hơn. Các khả năng là vô tận.

Đọc và ghi vào các tập tin có luồng

PHP có một API khác để đọc và ghi các tệp: hàm

1 và 
2.

Hàm fopen ()

Hàm

3 cho phép bạn mở một tệp để đọc hoặc viết và thậm chí cho phép bạn tạo một tệp mới.

Hãy cùng nhìn vào một ví dụ đơn giản để hiểu cách thức hoạt động của nó.

Trong ví dụ trên, hàm

3 sẽ kiểm tra xem tệp /home/tutsplus/files/tmp.txt có tồn tại không và nếu nó tồn tại, nó sẽ mở nó để viết. By & nbsp; Cung cấp 
5 Trong đối số thứ hai, chúng tôi chỉ định rằng chúng tôi sẽ viết vào tệp. & NBSP; Nếu tệp không tồn tại, nó sẽ được tạo ngay lập tức. Điều quan trọng cần lưu ý ở đây là người dùng/home/Tutsplus/files/thư mục trong ví dụ trên phải được người dùng máy chủ web có thể ghi cho chức năng 
3 để có thể tạo tệp./home/tutsplus/files/tmp.txt file exists, and if it exists, it’ll open it for writing. By supplying 
5 in the second argument, we specify that we will be writing to the file. If the file doesn’t exist, it’ll be created right away. It’s important to note here that the /home/tutsplus/files/ directory in the above example must be writable by the web server user
for the 
3 function to be able to create a file.

Đối số đầu tiên của hàm

3 là tên tệp mà bạn muốn mở. Trong ví dụ trên, chúng tôi đã cung cấp /home/tutsplus/files/tmp.txt Tên tệp trong đối số đầu tiên. Một lần nữa, điều quan trọng cần lưu ý là chúng tôi đã cung cấp một tên đường dẫn tuyệt đối./home/tutsplus/files/tmp.txt filename in the first argument. Again, it’s important to note that we’ve supplied an absolute path name.

Đối số thứ hai là chế độ, chỉ định loại truy cập bạn yêu cầu vào tệp đã mở. Hàm

3 cung cấp các chế độ khác nhau mà bạn có thể chọn. Ví dụ:

Cách thứcNghĩaĐã xóa tập tin?Vị trí con trỏ
rChỉ đọc

không

bắt đầu
R+đọc và viết & nbsp;khôngbắt đầu

R+

đọc và viết & nbsp;khôngbắt đầu

w+

R+khôngbắt đầu
R+đọc và viết & nbsp;khôngw
Xóa tệp và chỉ mở để viếtVângkhôngw

Xóa tệp và chỉ mở để viết/home/tutsplus/files/tmp.txt and opens it for writing only.

Vâng

Xóa tệp và mở để đọc và viết

một

Viết ở chế độ phụ lục

chấm dứt

A+

Đọc và viết ở chế độ phụ lục

Trong ví dụ của chúng tôi, chúng tôi đã sử dụng chế độ
9, xóa nội dung của /home/tutsplus/files/tmp.txt và mở nó chỉ để viết.

3 Trả về một con trỏ hệ thống tệp, được sử dụng cho các chức năng tệp khác như đọc và ghi.

Mở các tệp từ xa?/home/tutsplus/files/tmp.txt file, we’ve opened it with the is_file()1 mode by using the

3 function. The 
3 function does two things: it creates a file if it doesn't exist and also opens it for reading or writing.

Hàm

3 không chỉ dành cho các tệp cục bộ. Nó cũng hỗ trợ các giao thức khác và có thể mở các tệp từ nơi khác trên mạng của bạn hoặc web. Nếu bạn đã bật Chỉ thị file_exists()2 trong PHP, bạn cũng có thể mở các tệp từ xa./home/tutsplus/files/tmp.txt file, and thus we’ve used the is_file()6 function to measure the size of the file.

Nó thực sự quan trọng cần lưu ý rằng khi bạn bật Chỉ thị file_exists()2, bạn đang tạo ra một số rủi ro bảo mật, & nbsp; vì nó mở cửa để thực hiện tệp từ xa và các cuộc tấn công khác. Vì vậy, hãy chắc chắn rằng bạn thực hiện các biện pháp bảo mật bổ sung trong ứng dụng của mình nếu bạn sẽ bật chỉ thị này.

Hàm

4

Hàm

1 cho phép bạn đọc từ một tệp. Nó tương tự như 
2, nhưng bạn cần cung cấp độ dài bằng byte bạn muốn đọc. Trước tiên, bạn cũng cần mở tệp với 
3.

Đối số đầu tiên của hàm
1 là con trỏ hệ thống tệp, để nó biết nơi đọc từ đâu. Đối số thứ hai là độ dài tính bằng byte bạn muốn đọc từ một tệp. Bạn cần sử dụng chức năng 
3 để có được con trỏ hệ thống tệp.

Ví dụ về việc sử dụng ________ 61 & nbsp;

Hãy để một cái nhìn vào ví dụ sau để hiểu cách thức hoạt động của nó./home/tutsplus/files/tmp.txt file with the file_get_contents()4 mode, which opens it for reading and writing, with the file pointer placed at the end of the file. Thus, our content will be appended to the end of the file, after any other contents. Next, we’ve used the

2 function to write a string.

Khi chúng tôi muốn đọc từ tệp /home/tutsplus/files/tmp.txt, chúng tôi đã mở nó bằng chế độ is_file()1 bằng cách sử dụng hàm

3. Hàm 
3 thực hiện hai điều: nó tạo một tệp nếu nó không tồn tại và cũng mở nó để đọc hoặc viết.

Cuối cùng, chúng tôi đã sử dụng chức năng file_get_contents()7 để đóng tệp. Chỉ cần một đối số, con trỏ tệp mà & nbsp; bạn muốn đóng. Nó luôn luôn là một thực tiễn tốt để đóng các tệp bằng cách sử dụng chức năng file_get_contents()7 sau khi bạn đã hoàn thành các hoạt động tệp của mình.

Suy nghĩ cuối cùng

Có nhiều cách khác để đọc và ghi dữ liệu vào các tệp trong PHP. Tuy nhiên, file_get_contents()

0 sẽ giải quyết gần như tất cả các nhu cầu cơ bản của bạn mà không cần thêm biến chứng không cần thiết.

Lần duy nhất bạn có thể phải đối mặt với một vấn đề với file_get_contents() là khi tệp bạn đang đọc rất lớn giống như kích thước 2GB trở lên. Điều này là do file_get_contents() tải toàn bộ tệp vào bộ nhớ cùng một lúc và có cơ hội tốt để hết bộ nhớ với các tệp lớn như vậy. Trong trường hợp đó, bạn sẽ phải dựa vào các chức năng như

03 và 
4 để đọc một phần nhỏ của tệp cùng một lúc.

Bạn có thấy bài đăng này hữu ích?

Hướng dẫn what are two ways you can write data to a file in php? - hai cách bạn có thể ghi dữ liệu vào một tệp trong php là gì?

Freelancer, người hướng dẫn

Tôi là một nhà phát triển đầy đủ, người cũng thích viết các hướng dẫn. Sau khi thử một loạt những điều cho đến năm thứ hai đại học, tôi quyết định làm việc về các kỹ năng phát triển web của mình. Bắt đầu chỉ với HTML và CSS, tôi tiếp tục tiến về phía trước và có được kinh nghiệm trong PHP, JavaScript và Python. Tôi thường dành thời gian rảnh của mình hoặc làm việc cho một số dự án phụ hoặc đi du lịch xung quanh.

Hai cách bạn có thể viết dữ liệu vào một tệp giải thích bằng ví dụ PHP là gì?

Các hàm php fwrite () và fput () được sử dụng để ghi dữ liệu vào tệp. Để ghi dữ liệu vào tệp, bạn cần sử dụng chế độ W, R+, W+, X, X+, C hoặc C+...
$ fp = fopen ('data.txt', 'w'); // mở tệp ở chế độ chỉ ghi ..
$ fp = fopen ('data.txt', 'w'); // mở tệp ở chế độ chỉ ghi ..
fwrite ($ fp, 'xin chào') ;.
fclose($fp);.
echo "Tệp viết thành công" ;.

Hai phương pháp bao gồm các tệp trong PHP là gì?

PHP bao gồm và yêu cầu các câu lệnh Có thể chèn nội dung của một tệp PHP vào tệp PHP khác (trước khi máy chủ thực thi nó), với câu lệnh bao gồm hoặc yêu cầu.include or require statement.

Những cách khác nhau để viết PHP là gì?

Sau khi lưu tệp mã của bạn vào thư mục HTDOCS, hãy làm theo các bước dưới đây ...
Mở bảng điều khiển XAMPP ..
Bắt đầu máy chủ Apache và MySQL ..
Truy cập bất kỳ trình duyệt nào và nhập tên địa phương/tên tệp.PHP trong hộp tìm kiếm ..
Nếu bạn lưu mã PHP của mình trong một thư mục con trong HTDOCS, thì hãy nhập localhost/subfolder_name/filename.php ..

Làm thế nào để bạn viết tệp trong PHP?

PHP ghi vào tệp - fwrite () hàm fwrite () được sử dụng để ghi vào tệp.Tham số đầu tiên của fwrite () chứa tên của tệp để ghi vào và tham số thứ hai là chuỗi được viết.fwrite() The fwrite() function is used to write to a file. The first parameter of fwrite() contains the name of the file to write to and the second parameter is the string to be written.