Live output: MrClay_Html highlights

$html = new MrClay_Html
$assoc = array(
    array(
'id' => 2'first' => '<b>B</b>íll''last' => 'Gátës'),
    array(
'id' => 3'first' => 'Batman''last' => null),
    array(
'id' => 4'first' => array(1'a'true), 'last' => false),
); 
// non-string values are passed through $html->stringify()
$html->build_table_from_assoc_array($assoc); 

rendering

idfirstlast
2<b>B</b>íllGátës
3BatmanN/A
4
array (
  0 => 1,
  1 => 'a',
  2 => true,
)
No
// custom stringify func
function myStringify($var) {
    return 
$var '<i>truthy</i>' '<b>falsey</b>';
}
$html->build_table_from_assoc_array($assoc, array(
    
'stringifyFunc' => 'myStringify'
)); 

rendering

idfirstlast
truthy<b>B</b>íllGátës
truthyBatmanfalsey
truthytruthyfalsey
$html->build_table_from_assoc_array($assoc, array(
    
'escapeValues' => false // don't escape cells (stringified cells are never escaped)
    
,'orientation' => 'horizontal'
)); 

rendering

id234
firstBíllBatman
array (
  0 => 1,
  1 => 'a',
  2 => true,
)
lastGátësN/ANo
// nicely formatted markup (slower)
$html->set_whiteSpace(true); 
$html->build_table_from_assoc_array($assoc, array(
    
'escapeValues' => false
    
,'orientation' => 'horizontal'
)); 

returns

'<table class="resultTable" border="1" cellpadding="4" cellspacing="0">
<tbody>
<tr>
    <th>id</th>
    <td>2</td>
    <td>3</td>
    <td>4</td>
</tr>
<tr>
    <th>first</th>
    <td><b>B</b>íll</td>
    <td>Batman</td>
    <td><pre>array (
  0 =&gt; 1,
  1 =&gt; &#039;a&#039;,
  2 =&gt; true,
)</pre></td>
</tr>
<tr>
    <th>last</th>
    <td>Gátës</td>
    <td>N/A</td>
    <td>No</td>
</tr>
</tbody>
</table>'
$html->build_dl_from_row($assoc[2]); 

returns

'<dl class="resultDl">
    <dt>id</dt>
    <dd>4</dd>
    <dt>first</dt>
    <dd><pre>array (
  0 =&gt; 1,
  1 =&gt; &#039;a&#039;,
  2 =&gt; true,
)</pre></dd>
    <dt>last</dt>
    <dd>No</dd>
</dl>'

rendering

id
4
first
array (
  0 => 1,
  1 => 'a',
  2 => true,
)
last
No
$html->build_select(
    array( 
// attributes
         
'name' => 'mySelect'
        
,'multiple' => 'multiple'
        
,'size' => 3
    
), array( // value => display
         
=> 'Here is a select'
        
,=> 'element with'
        
,=> 'multiple selections.'
    
), array( // selected values (optional)
        
2,3
    
)
); 

rendering

// decode HTML entities
$html->hd("HTML &euml;nt&iacute;ties c&aacute;n be &lt;em&gt;de&lt;/em&gt;coded."); 

returns

'HTML ëntíties cán be <em>de</em>coded.' 
// escape and wrap in a P element
$html->hwrap('HTML spëcial chars & áre <esc>aped.''p'); 

returns

'<p>HTML spëcial chars &amp; áre &lt;esc&gt;aped.</p>'

rendering

HTML spëcial chars & áre <esc>aped.

// wrap doesn't escape contents
$html->wrap(
    
$html->hwrap('He said & she said.''p'// hwrap does
    
,'blockquote'
); 

rendering

He said & she said.