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?
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]
>
--
Jo Giraerts
Computerprutser
Life BVBA
Interleuvenlaan 15A, 3001 LEUVEN, BELGIUM
icq:81939849, email:[EMAIL PROTECTED], ph0ne:+32(0)16 20 89 61
pgp-key available at: http://www.keyserver.net.
fingerprint: 81EE B1FD 88E2 A03A 4F49 6D8A 806E 2220 9C2F 918B
I've got these opium queens that move around my space,
I said it's waste not, want not,
I think I'll take another,
I'm holding all this pain that I'm trying to smother.
<branvan3000 -
Afrodisiac>
--
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]