On Monday 03 June 2002 01:00 pm, you wrote: > Sunday, June 02, 2002, 7:55:09 PM, Andre wrote: > AD> I've been wondering why code in 'pure' php? Is there some compelling > reason AD> (that I'm unaware of) for doing so? Should I rewrite all my > earlier code into > > Andre, > Sorry to chime in so late, but IMO, be more concerned with > saving output for the last step in execution, because once it's echoed > out, there's no turning back or sending headers or a redirect.. Have > functions return strings instead of echo them (and take advantage of > "<<<" syntax for more readable string building), build up a document > into variables, send out at very end. > > Some home-grown example code might be useful: > > <?php > > //setup session, DB, some common functions > require_once("setup_session.php"); > require_once("create_DB_object_instance.php"); > require_once("html_building_functions.php"); > > // start building string array for later output > $Template["title"] = "query results"; > > // if DB problems, load content, output, quit. > if (!$dbi->connect()) { > $Template["main_content"] = > join('',file("DB_down_message.html",1)); > include("main_template.php"); > exit(0); > } > > // build result table HTML > $result_table = open_result_table(); > $dbi->run_query("SELECT .."); > while ($row = $dbi->next_row_array()) { > $result_table .= <<<EOD > <tr> > <td>{$row["guns"]}</td> > <td>{$row["butter"]}</td> > </tr> > EOD; > } > $result_table .= "</table>\n"; > > // load results content > $results_copy = join('',file("about_results.html",1)); > > $Template["main_content"] .= <<<EOD > <h1>Query Results</h1> > $result_table > <h2>About Results</h2> > $results_copy > EOD; > > if (//need to go elsewhere) { > header("Location: http://elsewhere"); > exit(0); > } > > $_SESSION['last_accessed'] = $PHP_SELF; > > setcookie(//something); > > include("main_template.php"); > > ?> > > Point is, at any point in execution cookies or headers can be sent or > content changed. You end up with most content in seperate files and > script logic/execution very easy to understand/debug. Stick a "watch" > echo anywhere in the code and it pops up at the top of the browser > window. > > For the above code, main_template.php is a full HTML document (only > HTML editor needed) with PHP tags in just a few spots to echo elements > of the $Template array: > > <!DOCTYPE ...> > <html> > <head> > <title><?php echo $Template['title'] ?></title> > </head> > <body> > <?php echo $Template['main_content'] ?> > </body> > </html> > > Bogdan wrote: > > There's an urban legend saying that switching php tags on and off would > > slow parsing down. > > Content outside PHP tags gets to skip the parser. From the manual: > > "..for outputting large blocks of text, dropping out of PHP parsing mode > is generally more efficient than sending all of the text through > echo() or print() or somesuch." > > Steve
Thanks Steve, How I wish I had seen this before I started coding. Looks very good . . . I might work on some changes, after all . . . Regards, Andre -- Please pray the Holy Rosary to end the holocaust of abortion. Remember in your prayers the Holy Souls in Purgatory. May God bless you abundantly in His love! For a free Cenacle Scriptural Rosary Booklet: http://www.webhart.net/csrb/ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php