2011-09-05 26 views
12

Tôi muốn bao gồm mã html bên trong các biến php. Tôi nhớ có một cách để xác định mã html bên trong một biến php, một cái gì đó tương tự như sau:Xác định mã html bên trong các biến PHP

<?php $my_var = { ?> 
<div>SOME HTML</div> 
<?php } ?> 

Tôi tìm thấy nó trên PHP.net nhưng tôi không thể tìm thấy nó bây giờ. Có một số thứ khác thay vì "{" nhưng tôi không nhớ chính xác. Tôi đang tìm cách viết trực tiếp mã html như trên, vì vậy KHÔNG thích điều này: $my_var = '<div>SOME HTML</div>'; Bất kỳ ý tưởng nào?

Trả lời

27
<?php 
$my_var = <<<EOD 
<div>SOME HTML</div> 
EOD; 
?> 

Được gọi là cú pháp heredoc.

+0

Đó là thứ. Cảm ơn bạn. – adrianTNT

+0

Tôi đã hy vọng rằng Dreamweaver sẽ giúp định dạng cú pháp html đúng cách nhưng tôi thấy nó không nhận ra nó như là một html: | Tôi không thể đóng thẻ php đó trước html và mở lại sau html, tôi có thể không? – adrianTNT

+0

Không, thật không may, bạn không thể: -/ Bạn có thể sử dụng ob_start() và ob_get_clean() để bắt đầu lưu bộ đệm đầu ra, và sau đó tìm nạp bộ đệm vào một biến. Đó được coi là một hack (xấu xí), mặc dù. –

38

Hãy thử điều này:

<?php ob_start(); ?> 
<div>HTML goes here...</div> 
<div>More HTML...</div> 
<?php $my_var = ob_get_clean(); ?> 

Bằng cách này bạn sẽ giữ lại làm nổi bật cú pháp cho HTML.

+2

Điều này sẽ ở trên cùng. Sạch hơn nhiều so với EOD – KroniK907

+0

bạn rock man !!! –

6

Lưu HTML của bạn trong một file riêng biệt: example.html. Sau đó đọc nội dung của tập tin vào một biến

$my_var = file_get_contents('example.html'); 
+0

Có, phương pháp này cũng sẽ hoạt động cho mục đích ban đầu mà tôi có. – adrianTNT

+0

Tôi sẽ thích điều này để giữ mã sạch! –

1

Nếu bạn không quan tâm đến cú pháp HTML làm nổi bật bạn chỉ có thể định nghĩa một biến bình thường. Bạn không cần phải thoát khỏi HTML vì PHP cho phép bạn sử dụng các dấu nháy đơn để xác định một biến, có nghĩa là bạn có thể sử dụng dấu ngoặc kép trong mã HTML của mình.

$html = ' 
<p> 
    <b><i>Some html within a php variable</i><b> 
</p> 
<img src="path/to/some/boat.png" alt="This is an image of a boat"> 
' ; 

Hoạt động hoàn hảo cho tôi, nhưng đó là vấn đề ưu tiên và triển khai tôi đoán.

0

Nếu bạn đang đi để được lặp lại nội dung đó một cách khác để có thể thực hiện là sử dụng chức năng,

này cũng có thêm lợi ích của các chương trình sử dụng làm nổi bật cú pháp.

function htmlContent(){ 
?> 
    <h1>Html Content</h1> 
<?php 
} 


htmlContent(); 
?> 
Các vấn đề liên quan