Re: Auto-generating HTML

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 20 September 2010 19:56, Andy McKenzie <amckenzie4@xxxxxxxxx> wrote:
> Hey folks,
>
> ÂI have the feeling this is a stupid question, but I can't even find
> anything about it. ÂMaybe I'm just not searching for the right things.
>
> ÂHere's the problem. ÂI'm writing a lot of pages, and I hate going in
> and out of PHP. ÂAt the same time, I want my HTML to be legible. ÂWhen
> you look at it, that's kind of a problem, though... for instance
> (assume this had some PHP in the middle, and there was actually a
> reason not to just put this in HTML in the first place):
>
> Simple PHP:
> <?php
>
> echo '<html>';
> echo '<head>';
> echo ' Â<title>Page Title</title>';
> echo '</head>';
> echo '<body>';
> echo '<p>This is the page body</p>';
> echo '</body>';
> echo '</html>';
>
> ?>
>
>
> Output page source:
> <html><head> Â<title>Page Title</title></head><body><p>This is the
> page body</p></body></html>
>
>
> Now, I can go through and add a newline to the end of each line (echo
> '<html>' . "\n"; and so on), but it adds a lot of typing. ÂIs there a
> way to make this happen automatically? ÂI thought about just building
> a simple function, but I run into problem with quotes -- either I
> can't use single quotes, or I can't use double quotes. ÂHistorically,
> I've dealt with the issue by just having ugly output code, but I'd
> like to stop doing that. ÂHow do other people deal with this?
>
> Thanks,
> ÂAlex
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

There is also the tidy extension which will take your badly formatted
html tag soup and create formatted html, xhtml, etc.

But really, why bother?

Whenever I need to view the source I use the browsers viewsource
option or firebug/console/etc. Essentially, client side.

But using templates with heredoc ...

<?php
// Template to display a username row.
// Requires a $a_User array
return <<< END_HTML
 <tr>
  <th>{$a_User['Name']}</th>
  </tr>
END_HTML;


sort of thing is easy enough to build. And in a loop ...

$s_Users = '';
foreach($a_Users as $a_User) {
 $s_Users .= include '../templates/users.tmpl';
}

Now, $s_Users contains the rows to display the users and you could do
something to it if you wanted to.

Of course, rolling your own system is fine, but there are other
templating systems available, though, of course, PHP _IS_ the
templating system, so why learn another one.

If you are using a designer to structure the HTML and then adding your
code to build the pages, then a templating system compatible with the
designer's tools would be a good option.

-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux