Php 如何在yii框架下动态生成adminEmail

Php 如何在yii框架下动态生成adminEmail,php,yii,Php,Yii,目前,adminEmail是在params.php文件中设置的。我正在尝试动态更改“adminEmail”,然后我可以分配所需的电子邮件值。params.php中有代码 return array( // this is displayed in the header section 'title' => 'title here', // this is admin email 'adminEmail' => 'admin@email.com', 但是

目前,adminEmail是在params.php文件中设置的。我正在尝试动态更改“adminEmail”,然后我可以分配所需的电子邮件值。params.php中有代码

return array(
    // this is displayed in the header section
    'title' => 'title here',
    // this is admin email
    'adminEmail' => 'admin@email.com',
但是管理员电子邮件可能不止一封。admin1@email.com, admin2@email.com,如何在params.php中动态设置管理员电子邮件


提前谢谢

您可以尝试在adminEmail上设置多封电子邮件,并在运行时使用索引访问它。例如

//asign multiple email ids to adminEmail as array
'params'=>array(
    // this is used in contact page
    'adminEmail'=>array('webmaster@example.com','sany@gmail.com','xxx@yahoo.com','webmaster2@example.com')
),

//access it using array index at runtime as your requirement
<?php echo Yii::app()->params['adminEmail'][1];?>  //sany@gmail.com
<?php echo Yii::app()->params['adminEmail'][2];?>  // xxx@yahoo.com

好吧,虽然我不推荐这种方法,但你想做的事情可以这样做:

您需要以序列化的形式将数组存储在一个文件中,也就是对其调用函数。这将把数组转换为字符串

您可以读取该文件并取消序列化,也就是对其调用函数。这将把读取表单文件的字符串转换回PHP数组

$handle = fopen('path/to/file','rb');
$contents = fread($handle,999).
$array = unserialize($contents);
将“adminEmail”设置为您希望的状态:

$array['adminEmail'] = 'new@email.com; 
甚至

$array['adminEmail']= array(..lots of emails..);
然后需要将数组转换为字符串,并将数组写回文件。比如说:

$serialized_contents = serialize($array);
fwrite($handle, $serialized_contents);
$serialized_contents = serialize($array);
fwrite($handle, $serialized_contents);