2013-01-08 38 views
6

Tôi đã kế thừa một trang web mà tôi cần thực hiện một số thay đổi. Như mọi khi, có nhiều cách để làm mọi thứ trong phát triển trang web. Tuy nhiên, trang web cụ thể này khiến tôi bối rối. Tất cả các html được phân phối thông qua các script php heredoc. Tuy nhiên, không ai thực hiện bất kỳ xử lý php nào.Tại sao tạo HTML đơn giản thông qua PHP heredoc?

Ví dụ (cấu trúc chỉ) index.php:

<?php 
$html = <<<html 

<html> 
    <head></head> 
    <body> 
     {more simple HTML here. No php processing to be done} 
    </body> 
</html> 
html; 
echo $html; 
?> 

Tôi hiểu php nhưng tôi không thể tìm ra lý do tại sao họ tạo ra trang theo cách này như phản đối chỉ đơn giản là cung cấp nó mà không cần chế biến biến php . Trước khi tôi cho rằng người đó không biết họ đang làm gì, tôi nghĩ tôi sẽ hỏi. Bất kỳ ý tưởng?

Đây là bài đăng đầu tiên của tôi lên StackOverflow để phản hồi về nghi thức diễn đàn cũng được hoan nghênh.

+0

Dưới đây là chi tiết về heredoc, có thể hữu ích cho bạn: http: //in3.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc –

+0

Thường thường mọi người có khuynh hướng làm điều này với các tài liệu xml mà họ chơi với trước khi lưu vào một tập tin thực tế ... bây giờ có vẻ như với tôi rằng các lập trình viên xây dựng trang không thích * lười biếng máy chủ * lý tưởng. –

+1

Theo như SO nghi thức đi, chỉ cần đọc qua [FAQ] (http://stackoverflow.com/faq). Câu hỏi của bạn được viết rõ ràng và rõ ràng, đó là một khởi đầu tuyệt vời! –

Trả lời

1

Có thể là do họ dự định sử dụng các biến PHP trong HEREDOC. Ví dụ của bạn không có, nhưng tôi sẽ nguy hiểm đoán rằng chúng được sử dụng ở những nơi. Từ đó, tôi sẽ tưởng tượng HEREDOC được sử dụng ở khắp mọi nơi cho sự nhất quán.

+0

Điều này hóa ra là chính xác. Các tệp được tạo bởi một chương trình xây dựng trang web. –

1

Lý do cho heredocs có thể là do bạn không phải thoát khỏi dấu ngoặc kép hoặc lo lắng về dấu ngoặc kép ở tất cả các heredoc, trong khi chuỗi ký tự bạn phải quản lý dấu ngoặc kép cho phù hợp.

Thông thường, việc giữ HTML trong một tệp riêng biệt hoặc sử dụng hệ thống mẫu - thường sẽ là một lựa chọn tốt hơn so với heredocs hoặc chuỗi ký tự chuỗi.

+1

Tôi nghĩ rằng họ đang tự hỏi: tại sao lưu trữ HTML vào một biến sau đó lặp lại nó? Nó sẽ không tốt hơn để thoát khỏi PHP sau đó chỉ cần bao gồm nó "nude"? –

+0

@GigaWatt Đó chính là điều tôi đang thắc mắc. Có vẻ lạ khi sử dụng định dạng heredoc cho html thuần túy. Tuy nhiên, tôi phát hiện ra các tập tin php được tạo ra bởi một chương trình khác được sử dụng để tạo ra các trang web. Đây là phương thức đầu ra mặc định cho trình tạo. –

1

Tệp PHP đã là các tệp mẫu trong HTML.

Thay thế mã của bạn với:

<html> 
    <head></head> 
    <body> 
     {more simple HTML here. No php processing to be done} 
    </body> 
</html> 

Chỉ có HTML trong cơ thể của một file PHP, ngoài <?php?>, trả về HTML.

+0

Tôi đồng ý. Tôi sẽ thay đổi mã để làm cho nó rõ ràng hơn. –

1

Bạn có thể dành hàng tuần cố gắng để có được vào đầu của một nhà phát triển di sản và nó chỉ là lãng phí thời gian.

Tôi khuyên bạn nên tái cấu trúc mã để không cần bất kỳ thứ gì trong PHP trong những trường hợp đó, sẽ không có lợi khi làm những gì họ đã làm và nó sẽ là một trải nghiệm chói tai cho bạn mỗi khi bạn chỉnh sửa nó.

+1

Đây là những gì tôi sẽ làm. Ngoài việc không có lợi ích, trình soạn thảo của tôi phân tích cú pháp mã như PHP thay vì HTML. Mà đối với tôi là một nỗi đau. –

Các vấn đề liên quan