On Tue, 28 Aug 2001, Jo Giraerts wrote:

> This is already possible in php, though with the following simple
> function..
>
>    // function to read a file with php-vars in as a string
>    // $predefined_vars: an array ("varname" => "value"). all the
>    // variablenames defined in this array can be used in the bodyfile.
>    // They will receive the respective values. This makes personalising
>    // the mailes easier..
>    function file_as_body($filename, $predefined_vars)
>    {
>       $ar = file($filename);
>       extract($predefined_vars);
>
>       foreach ($ar as $number => $line)
>       {
>          eval("\$ar2[] = \"$line\";");
>       }
>
>       return implode("",$ar2);
>    }
>
> and for instance this file as template:
>
> <--- template file
> You received a file on (" . date("d/m/Y (H:i)") . ")
>
> filename: ".basename($file) ."
> filesize: ".filesize($file) ."
> mimetype: $mimetype
>
> Hope you enjoy it..
> --->
>
> You can even use php-code already, thanks to eval :)
>
> Maybe we better make it a PEAR-thing?
>


    Not really, the below is a different functionality (and the above is
    slow because of the use of eval)... +1 for it being in the core...

    -Sterling
>
>
>
> On Tue, Aug 28, 2001 at 12:25:15PM +0200,  wrote:
> > I have seen that in php there isn't nothing similar to dictionary
> > substitution in python.
> > (a dictionary is an array with string keys, like hash in perl)
> >
> > This change consist in adding two functions ("a" stay for "array"):
> > aprintf(string format, array dict) -- like printf, print the result
> > saprintf(string format, array dict) -- like sprintf, return the result
> >
> > It works like this (written in php-like language):
> >
> > format -> "my name is %(name)s and i'm %(age)s"
> > dict -> array( name=>"tom", age=> "eighteen" );
> >
> > (in php, unlike python, is possible to make an array with both string and
> > number indices, so the format can be also %(2)s,...)
> >
> > aprintf(format,dict) -- print "my name is tom and i'm eighteen"
> > saprintf(format,dict) -- return "my name is tom and i'm eighteen"
> >
> > in python, these substitutions are very useful, especially in cgi
> > programming, for making templates from text files, in php could be
> > useful in, for example, language customisation, or message formatting,
> > etc...
> >
> > An example:
> > if ($lang == "it")
> >   define("MESSAGE","il %(animal)s %(color)s sta %(action)s %(target)s");
> > else
> >   define("MESSAGE","the %(color)s %(animal)s is %(action)s");
> >
> > aprintf(MESSAGE,array(animal=>"cobra",color=>"green",action=>"eating",target
> > =>"mouse"));
> > // if the %(target)s isn't found, is ignored.
> >
> >
> > (the "s" terminator could be substituted with other letters, like d for
> > numbers, etc...)
> >
> > This approach has several advantages over something like this:
> > "the $color $animal is $action"
> > because in this phrase, variables are substituted when the parser execute
> > it, and in this case:
> > "the %(color)s %(animal)s is %(action)s"
> > parameters are substituted only when the phrase is parsed with a specialized
> > function like aprintf
> >
> >
> >
> > I think that this is a good idea and could save a lot of time when the
> > program need to be as modular as possible.
> >
> > ----------------
> > Federico Marani
> > [EMAIL PROTECTED]
> > ----------------
> >
> >
> >
> >
> > --
> > PHP Development Mailing List <http://www.php.net/>
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
>
>


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to