Perfect

Thankyou

Henry

"Erik Price" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
>
> On Tuesday, July 2, 2002, at 01:52  PM, Henry wrote:
>
> > Imagine I have a piece of text
> >
> > "Dear [firstname]
> >
> > Thankyou for purchasing [product] on [date].
> >
> > We're sure you'll be very [expectation].
> >
> > Ta Very much."
> >
> > Whats the easiest way to replace all the things in square brackets with
> > variables of the same name.
> >
> > i.e. $firstname, $product, $date, $expectation
> >
> > Whilst ensuring that if the variable doesn't exist then it will be
> > replaced
> > with "" (absolutely nothing).
>
> Here, I modified the template class I use for my site (very simple) to
> do what you want.  You need to have a template file that looks exactly
> like what you wrote above (EXACTLY), nothing more.  Here is a usage
> example:
>
> <?php
> // the following vars have already been defined in your application,
> // or are set to empty strings as appropriate:
> // $firstname, $product, $date, $expectation
>
> // create a new Template object
> $template = new Template();
>
> // specify where our template file is
> $template->identifyTemplate('/path/to/file/above');
>
> // set the parameters
> $template->setParameter('firstname', $firstname);
> $template->setParameter('product', $product);
> $template->setParameter('date', $date);
> $template->setParameter('expectation', $expectation);
>
> // generate the output string and store in $outputStr
> $outputStr = $template->createOutput();
> // free memory occupied by the Template object instance
> unset($template);
>
> // print our data
> print($outputStr);
>
> Here is the class definition:
>
>
>
> class Template
> {
> /**
> * @var template
> */
> var $template;
> /**
> * @var finalOutput
> */
> var $finalOutput;
> /**
> * @var parameters
> */
> var $parameters = array();
>
> /**
> * identifyTemplate
> *
> * determine which file to use for a template
> *
> * @access public
> * @param string $template path to a template file
> */
> function identifyTemplate($template)
> {
> $this->template = $template;
> }
>
> /**
> * setParameter
> *
> * specify a name and a value to swap with that name
> *
> * this method can be called as many times as you have
> * parameters.
> *
> * @access public
> * @param string $name a parameter name
> * @param string $value value of the parameter
> */
> function setParameter($variable, $value)
> {
> $this->parameters[$variable] = $value;
> }
>
> /**
> * createPage
> *
> * substitute parameter values where parameter names are found
> *
> * @access public
> * @return string template combined with values (transformed)
> */
> function createOutput()
> {
> // read the template into an array, then
> // generate a string from that array
> $this->finalOutput = implode("", (file($this->template)));
>
> // loop though all the parameters, and
> // set the variables from the file to
> // their corresponding values
> foreach ($this->parameters as $key => $value) {
> $template_name = '[' . $key . ']';
> $this->finalOutput = str_replace($template_name, $value,
> $this->finalOutput);
> }
> return $this->finalOutput;
> }
> }
>
>
>
>
> ----
>
> Erik Price
> Web Developer Temp
> Media Lab, H.H. Brown
> [EMAIL PROTECTED]
>



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

Reply via email to