Issue
I combined HTML with PHP to generate a web page. My PHP code is:
public function generateSelect()
{
$data = "<select>\n";
for ($i = 2000;$i<=2012;$i++)
{
$data .= "\t<option value='$i'>$i</option>\n";
}
$data .= "</select>";
$this->data = $data;
return $this;
}
And this is my HTML:
<div>
<?= $data ?>
</div>
And this is the result:
<div>
<select>
<option value='2000'>2000</option>
<option value='2001'>2001</option>
<option value='2002'>2002</option>
<option value='2003'>2003</option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
<option value='2006'>2006</option>
<option value='2007'>2007</option>
<option value='2008'>2008</option>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
<option value='2012'>2012</option>
</select>
</div>
I know that it can be fixed with \t
and \n
. But I want to know if there is any way to do it automatically?
Solution
It can be done with PHP's tidy
class. As well as PHP's DOM
extension.
<?php
$html = <<<HTML
<div>
<select>
<option value='2000'>2000</option>
<option value='2001'>2001</option>
<option value='2002'>2002</option>
<option value='2003'>2003</option>
<option value='2004'>2004</option>
<option value='2005'>2005</option>
<option value='2006'>2006</option>
<option value='2007'>2007</option>
<option value='2008'>2008</option>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
<option value='2012'>2012</option>
</select>
</div>
HTML;
$dom = new DOMDocument();
$dom->loadXML($html);
$dom->formatOutput = true;
echo $dom->saveHTML();
Answered By - Madara's Ghost
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.