Hi,

I am looking for a free tool which let me write pure html + user defined special tags, which would be transformed on demand into php file. For example I can define source like this:

<html><body>
<config/>
<mysql>
<form name="frm" action="nextstep.php">
<select name="xxx">
<query sql="select value, name from table where cathegory=@GET_cathegory";>
<option value="%1">%2</option>
</query>
</select>
</form>
</mysql>
</body></html>

result would be

<html><body>
<?php
include_once ("config.php");
?>
<?
include_once("mysql_open.php");
?>
<form name="frm" action="nextstep.php">
<select name="xxx">
....code what generates dynamically set of options....
</select>
</form>
<?
include_once("mysql_close.php");
?>
</body></html>

is there such a tool???

Actually your "pure html" example looks almost identical to ColdFusion from Adobe or, similarly, Genshi in Python.

Actually your "pure html" example looks almost identical to ColdFusion from Adobe or, similarly, Genshi in Python.

Yes, but cold fusion process page on runtime, but I need a code generator based on templates-samples which will be filles in XML-XSLT transformation style. Complicated parts will be written directly in PHP, but there are tons of stuff, which is nothing more than mechanical aplying design pattern and it can save time a lot + less bugs.

Half of programming is learning to be an able toolsmith. :)

If no such tool exists, you'll have to make your own, perhaps using a pair of existing tools: sed and m4:

  • sed() transforms the input to a form m4() can understand
  • m4() 'replaces' the macros with suitable PHP code.

    But then, isn't an SGML/XML processor is supposed to be able to handle this? If so, then if your input looked more like:

    <html><body>
      <php_init_sql />
      <form name="frm" action="nextstep.php">
        <gen_select_sql name="xxx"
                        cols="value, name"
                        table="select_opts"
                        match="@GET_cathegory"
                        option_format="  &lt;option value=\"%1\"&gt;%2&lt;/option&gt;\n"
        />
      </form>
      <php_end_sql />
    </body></html>

    then an XML processor should be able to produce the desired output. Here, <php_init_sql> is defined to output PHP code that handles the stuff done once-only in a PHP program (require-onces, includes, et al), including sql startup. <gen_select_sql> generates PHP code, that queries the DB and produces the complete <select>...</select>.

    I think it all comes down to figuring out what you really want to accomplish. After that, it becomes straightforward and clear. Shoot, if the input is 'clean' enough, you could write shell scripts, awk scripts, perl scripts, sed scripts, even ex scripts to process it.

This article has been dead for over six months. Start a new discussion instead.