Làm thế nào để bạn đóng php?

Tôi đã rất ngạc nhiên trước phản hồi cho bài viết gần đây của mình, Bạn có nên đóng các thẻ mã PHP của mình không?

Tóm lại, việc đóng các thẻ PHP (?>) là hoàn toàn tùy chọn nếu bạn đang mã hóa một tệp chỉ có PHP và không có HTML xen kẽ. Các tệp chứa định nghĩa một lớp là những ứng cử viên tốt

Bỏ qua thẻ đóng có một lợi ích khác. không thể vô tình thêm khoảng trắng vào cuối tệp. Do đó, không thể gửi đầu ra tới trình duyệt trước khi tiêu đề trang HTTP được sửa đổi

Nhiều người được hỏi coi đây là một vụ hack và nói rằng các lập trình viên PHP chỉ nên sửa mã của họ. Đối với những người khác, việc bỏ qua thẻ đóng sẽ ngăn ngừa khả năng xảy ra lỗi — ngay cả khi không tồn tại lỗi nào. Điều này có thể đặc biệt hữu ích cho các dự án có nhiều cộng tác viên sử dụng các IDE khác nhau

Những người được hỏi chủ yếu rơi vào một trong ba nhóm

  1. Các nhà phát triển PHP, có lẽ đang làm việc trên các dự án hoặc nhóm lớn hơn, trong đó việc bỏ qua phần đóng ?> là hữu ích, được đề xuất hoặc là một tiêu chuẩn mã hóa được ghi lại
  2. Những người theo chủ nghĩa thuần túy mã hóa, có thể có nền tảng về XHTML hoặc XML, những người coi việc thiếu thẻ là sai
  3. Các nhà phát triển từ các lĩnh vực khác coi cuộc thảo luận là lố bịch

Theo cuộc thăm dò của SitePoint, một phần ba các nhà phát triển PHP đã không sử dụng thẻ đóng, một phần ba cho rằng đó là cách làm không tốt và một phần ba không nhận ra rằng nó có thể được bỏ qua

Đối với bản ghi, tôi thường bỏ qua thẻ đóng. Nó không có gì khác biệt đối với trình thông dịch PHP hoặc trình duyệt, vì vậy có rất ít lý do để đưa nó vào. Tuy nhiên, tôi có thể đánh giá cao lý do tại sao một số nhà phát triển không thích phong cách mã hóa

Một số khái niệm thú vị đã được đưa ra. Đầu tiên là trình thông dịch có thể sử dụng mã PHP theo mặc định và cho phép thoát sang HTML, e. g


// PHP file
DoSomeStuff();
<?html
<p>output HTML</p>
?>
DoMoreStuff();

Tôi nghi ngờ ý tưởng này là quá cách mạng. Nó có thể được thêm vào dưới dạng php. ini, nhưng nó sẽ phá vỡ các ứng dụng hiện có và gây ra sự hỗn loạn

Tuy nhiên, các tệp PHP thuần túy là một ý tưởng có nhiều tiềm năng hơn. Về bản chất, bạn chỉ định rằng một tệp chỉ chứa mã PHP. Điều này có thể đạt được bằng cách

  • sử dụng phần mở rộng tập tin đặc biệt, e. g. tên tập tin. pphp hoặc
  • sử dụng chức năng bao gồm/yêu cầu đã sửa đổi, chẳng hạn như

include('filename.php', PHP_ONLY);

Nếu điều này được triển khai, mã PHP của bạn sẽ không yêu cầu mở hoặc đóng thẻ. Ngoài ra, chức năng này có thể được thêm vào mà không ảnh hưởng đến các ứng dụng PHP hiện có — nó sẽ tương thích ngược

Nhưng, này, đó chỉ là một ý tưởng và có thể không bao giờ đi xa hơn bài viết này. Cuộc tranh luận về phong cách mã hóa PHP sẽ nổ ra trên…

Chia sẻ bài viết này

Làm thế nào để bạn đóng php?

Craig Buckler

Craig là một nhà tư vấn web tự do ở Vương quốc Anh, người đã xây dựng trang đầu tiên của mình cho IE2. 0 vào năm 1995. Kể từ thời điểm đó, anh ấy đã ủng hộ các tiêu chuẩn, khả năng truy cập và các kỹ thuật HTML5 thực hành tốt nhất. Anh ấy đã tạo các thông số kỹ thuật doanh nghiệp, trang web và ứng dụng trực tuyến cho các công ty và tổ chức bao gồm Nghị viện Vương quốc Anh, Nghị viện Châu Âu, Bộ Năng lượng & Biến đổi Khí hậu, Microsoft, v.v. Anh ấy đã viết hơn 1.000 bài báo cho SitePoint và bạn có thể tìm thấy anh ấy @craigbuckler

Tập lệnh mã PHP là một tệp văn bản có. phần mở rộng php và được lưu trữ trên máy chủ web. Trình phân tích cú pháp PHP trên máy chủ tìm kiếm chuỗi ký tự đặc biệt và ?>. Chúng được gọi là thẻ mở và thẻ đóng của PHP. Các câu lệnh trong hai câu lệnh này được trình phân tích cú pháp diễn giải. Tập lệnh PHP trong các thẻ này có thể được nhúng vào tài liệu HTML, do đó mã nhúng được thực thi trên máy chủ, phần còn lại của tài liệu sẽ được trình phân tích cú pháp HTML của trình duyệt máy khách xử lý

cú pháp

thẻ ngắn

PHP cho phép sử dụng biểu diễn thẻ mở ngắn hơn thay vì sử dụng đại từ nếu nó được bật trong php. ini bằng cách bật short_open_tag trong php. tập tin ini

Một phương pháp tốt hơn để mở tệp là dùng hàm fopen(). Chức năng này cung cấp cho bạn nhiều tùy chọn hơn so với chức năng readfile()

Chúng tôi sẽ sử dụng tệp văn bản, "webdictionary. txt", trong các bài học

AJAX = JavaScript và XML không đồng bộ
CSS = Biểu định kiểu xếp tầng
HTML = Ngôn ngữ đánh dấu siêu văn bản
PHP
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language

Tham số đầu tiên của fopen() chứa tên của tệp sẽ được mở và tham số thứ hai chỉ định tệp sẽ được mở ở chế độ nào. Ví dụ sau cũng tạo thông báo nếu hàm fopen() không thể mở tệp đã chỉ định

Thí dụ

$myfile = fopen("từ điển web. txt", "r") or die("Không thể mở tệp. ");
echo fread($myfile,filesize("webdictionary. txt"));
fclose($myfile);
?>

Chạy ví dụ »

Mẹo. Các hàm fread()fclose() sẽ được giải thích bên dưới

Tệp có thể được mở ở một trong các chế độ sau

ModesDescriptionrMở tệp chỉ đọc. Con trỏ tệp bắt đầu ở đầu tệpwMở tệp chỉ để ghi. Xóa nội dung của tệp hoặc tạo tệp mới nếu tệp không tồn tại. Con trỏ tệp bắt đầu ở đầu tệpaMở tệp chỉ để ghi. Dữ liệu hiện có trong tệp được giữ nguyên. Con trỏ tệp bắt đầu ở cuối tệp. Tạo một tệp mới nếu tệp không tồn tạixTạo một tệp mới chỉ để ghi. Trả về FALSE và lỗi nếu tệp đã tồn tại+Mở tệp để đọc/ghi. Con trỏ tệp bắt đầu ở đầu tệpw+Mở tệp để đọc/ghi. Xóa nội dung của tệp hoặc tạo tệp mới nếu tệp không tồn tại. Con trỏ tệp bắt đầu từ đầu tệp + Mở tệp để đọc/ghi. Dữ liệu hiện có trong tệp được giữ nguyên. Con trỏ tệp bắt đầu ở cuối tệp. Tạo tệp mới nếu tệp không tồn tại + Tạo tệp mới để đọc/ghi. Trả về FALSE và lỗi nếu tệp đã tồn tại

PHP đọc tệp - fread()

Hàm fread() đọc từ một tệp đang mở

Tham số đầu tiên của fread() chứa tên của tệp để đọc và tham số thứ hai chỉ định số byte tối đa để đọc

Đoạn mã PHP sau đọc "webdictionary. txt" vào cuối

fread($myfile,filesize("webdictionary. txt"));


PHP Đóng tệp - fclose()

Hàm fclose() được sử dụng để đóng một tệp đang mở

Đó là một thực hành lập trình tốt để đóng tất cả các tệp sau khi bạn hoàn thành chúng. Bạn không muốn một tệp đang mở chạy lung tung trên máy chủ của mình chiếm dụng tài nguyên

fclose() yêu cầu tên của tệp (hoặc một biến chứa tên tệp) mà chúng tôi muốn đóng

$myfile = fopen("từ điển web. txt", "r");
// một số mã sẽ được thực thi.
fclose($myfile);
?>


PHP Đọc một dòng - fgets()

Hàm fopen()0 được sử dụng để đọc một dòng từ tệp

Ví dụ bên dưới xuất ra dòng đầu tiên của "webdictionary. txt" tập tin

Thí dụ

$myfile = fopen("từ điển web. txt", "r") or die("Không thể mở tệp. ");
echo fgets($myfile);
fclose($myfile);
?>

Chạy ví dụ »

Ghi chú. Sau khi gọi hàm fopen()0, con trỏ tệp đã chuyển đến dòng tiếp theo


Kiểm tra cuối tệp PHP - feof()

Hàm fopen()2 kiểm tra xem đã đạt đến "end-of-file" (EOF) chưa

Hàm fopen()2 rất hữu ích để lặp qua dữ liệu có độ dài không xác định

Ví dụ dưới đây đọc "webdictionary. txt" theo từng ký tự, cho đến khi đạt đến cuối tệp

Cách chính xác để kết thúc một PHP là gì?

Ghi chú. Câu lệnh PHP kết thúc bằng dấu chấm phẩy ( ; ) .

Tôi có nên đóng thẻ PHP không?

Nếu tệp chỉ chứa mã PHP, tốt hơn là bỏ qua thẻ đóng PHP ở cuối tệp .

Mỗi dòng mã PHP phải kết thúc như thế nào?

Tất cả các tệp PHP PHẢI kết thúc bằng một dòng trống duy nhất .

Điều gì xảy ra nếu bạn không đóng thẻ PHP?

Tóm lại, việc đóng các thẻ PHP (?>) là hoàn toàn tùy chọn nếu bạn đang mã hóa một tệp chỉ có PHP và không có HTML xen kẽ. Các tệp chứa định nghĩa một lớp là những ứng cử viên tốt. Bỏ qua thẻ đóng có một lợi ích khác. không thể vô tình thêm khoảng trắng vào cuối tệp .