2009-12-26 34 views
12

Tôi có một lớp tạo ra một số html (phần tử biểu mẫu và phần tử bảng), nhưng lớp này trả về tất cả html trong một dòng. Vì vậy, tôi đang cố gắng sử dụng gọn gàng để làm đẹp mã (thụt lề mã, ngắt dòng, vv), vấn đề duy nhất tôi đang gặp là tạo ra các thẻ mà tôi không muốn.Ngăn chặn gọn gàng thêm thẻ html

Đây là mã:

tidy_parse_string(
        $table->getHtml(), 
        array(
          'DocType' => 'omit', 
          'indent' => true, 
          'indent-spaces' => 4,          
          'wrap' => 0          
         ) 
       ); 

Cách duy nhất tôi đã tìm thấy để loại bỏ các thẻ html thêm là bằng cách thêm một str_replace, một cái gì đó như thế này:

str_replace(array('<html>','</html>','<body>','</body>','<head>','</head>','<title>','</title>'),'', code); 

Những công trình, nhưng tôi đã thực sự nhảy có sẽ là một cách để nói gọn gàng để chỉ làm đẹp mã và không chèn thêm mã.

Trả lời

28

Thử tùy chọn show-body-only.

ví dụ:

$s = '<form method="post" action="?"><table><tr><td><input tpye="submit"></table>'; 
echo tidy_parse_string($s, array('show-body-only'=>true, 'indent'=>true)); 

in

<form method="post" action="?"> 
    <table> 
    <tr> 
     <td> 
     <input tpye="submit"> 
     </td> 
    </tr> 
    </table> 
</form> 

(chuỗi đã được sửa chữa và thụt vào nhưng không có wrapper html/body thêm vào). Có thể được kết hợp với tùy chọn output-xhtml trong trường hợp này cũng sẽ thêm dấu gạch chéo cho phần tử đầu vào trống.

+0

Không thể tin rằng tôi đã bỏ lỡ tùy chọn đó. Cảm ơn!! – AntonioCS

+0

Kính thưa chúa. Đây chính xác là những gì tôi cần, nhưng tôi chưa bao giờ đoán được nó từ tên của tùy chọn hoặc thậm chí là mô tả của nó! –

+1

nếu tôi muốn tải HTML nhưng hiển thị nó bằng XML thì sao? output-xml = true để chỉ hiển thị nội dung không hoạt động. làm thế nào để làm trong trường hợp đó? –

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