2009-12-26 34 views
12

Bazı html (form öğeleri ve tablo öğeleri) üreten bir sınıf var, ancak bu sınıf bir satırdaki tüm html'leri döndürür.html etiketlerini eklemesini önleyin

Kodun güzelleştirilmesi için düzenli olarak kullanmaya çalışıyorum (kodu gir, satır sonlarını koy, vs.), sahip olduğum tek sorun da istemediğim etiketleri oluşturuyor.

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

ekstra html etiketlerini kaldırmak için bulduk tek yolu, böyle bir şey bir str_replace ekleyerek geçerli:: İşte

kodudur çalışır

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

ama Gerçekten de, sadece kodu güzelleştirmek ve ekstra kodu eklememek için düzenli söylemenin bir yolu olacağını umuyordu.

cevap

28

show-body-only seçeneğini deneyin.

örn.

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

baskı

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

(dize tamir ve girintili ancak html/vücut sargı eklenmiştir). bu durumda da boş giriş elemanı için eğik çizgi eklersiniz output-xhtml seçeneği ile kombine edilebilir.

+0

ben o seçeneği cevapsız inanamıyorum. Teşekkürler!! – AntonioCS

+0

Sevgili efendim. Bu tam olarak ihtiyacım olan şeydi, ama onu asla seçeneğin isminden ve hatta açıklamasından tahmin etmemiştim! –

+1

HTML yüklemek, ancak XML ile görüntülemek istersem ne olur? çıktı-xml = true, bu yüzden show-body-only çalışmıyor. Bu durumda nasıl yapılır? –

İlgili konular