Re: [PHP-DEV] python dictionary-like % (percent) substitution inphp (was: Good idea in % (percent) substitutions in string)

2001-08-28 Thread Mathieu Kooiman




On Tue, 28 Aug 2001, it was written:

 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
qy 
 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]




Re: [PHP-DEV] python dictionary-like % (percent) substitution inphp (was: Good idea in % (percent) substitutions in string)

2001-08-28 Thread Mathieu Kooiman


Crap! Hit send for some reason.. 
When I just decided to *not* send anything :P

Sorry.

Met vriendelijke groet,

Mathieu Kooiman [EMAIL PROTECTED], [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]




Re: [PHP-DEV] python dictionary-like % (percent) substitution inphp (was: Good idea in % (percent) substitutions in string)

2001-08-28 Thread Sterling Hughes

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]