2009-12-26 12 views
12

Ho una classe che genera alcuni html (elementi del modulo ed elementi di tabella), ma questa classe restituisce tutto il codice html in una riga.Evita di aggiungere tag html

Così sto cercando di usare in ordine per abbellire il codice (trattino il codice, interruzioni di riga messe, ecc), l'unico problema che sto avendo è che anche la generazione dei tag che non voglio.

Ecco il codice:

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

L'unico modo che ho trovato per rimuovere i tag html in più è l'aggiunta di uno str_replace, qualcosa di simile:

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

Che funziona, ma io stava davvero saltando lì, sarebbe stato un modo per dire in ordine di abbellire semplicemente il codice e non inserire il codice extra.

risposta

28

Provare l'opzione show-body-only.

ad es.

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

stampe

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

(stringa è stato riparato e frastagliata, ma senza wrapper HTML/corpo aggiunto). Può essere combinato con l'opzione output-xhtml che in questo caso aggiungerebbe anche la barra per l'elemento di input vuoto.

+0

Non posso credere di aver perso quell'opzione. Grazie!! – AntonioCS

+0

Caro signore. Questo è esattamente ciò di cui avevo bisogno, ma non l'avrei mai indovinato dal nome dell'opzione o persino dalla sua descrizione! –

+1

e se volessi caricare HTML ma visualizzarlo tramite XML? output-xml = true quindi show-body-only non funziona. come fare in quel caso? –