Php 优化a";交叉数据“;电邮给我们表格
我最近的一项工作是优化一个客户的网站,该网站在客户的网站中包含一个极其繁琐的表单。我想优化它,但我不知道从哪里开始 该网站是一个“服务”数据库。此数据库有一个特殊的表单,允许向特定类型的所有服务提供商发送电子邮件,具体取决于两个筛选器:位置和服务类别。这样做的目的是向几家服务提供商询问一份工作的价格(例如,“我需要在家里找一份工作,我的水槽需要更换,那份工作的价格是多少,等等),它会向该地点的几位“水管工”发一封电子邮件,以便他们回答并找到最便宜/最好的工作) 因此,我们在php脚本上有几个“如果”条件,它们与电子邮件列表具有所有组合。以下是代码片段:Php 优化a";交叉数据“;电邮给我们表格,php,html,forms,email,Php,Html,Forms,Email,我最近的一项工作是优化一个客户的网站,该网站在客户的网站中包含一个极其繁琐的表单。我想优化它,但我不知道从哪里开始 该网站是一个“服务”数据库。此数据库有一个特殊的表单,允许向特定类型的所有服务提供商发送电子邮件,具体取决于两个筛选器:位置和服务类别。这样做的目的是向几家服务提供商询问一份工作的价格(例如,“我需要在家里找一份工作,我的水槽需要更换,那份工作的价格是多少,等等),它会向该地点的几位“水管工”发一封电子邮件,以便他们回答并找到最便宜/最好的工作) 因此,我们在php脚本上有几个“如
<?php
if(($sendLocal == "cascais-oeiras") && ($sendCat == "canalizadores")){$mailToList = "email1@gmail.com, email2@gmail.com, email3@gmail.com, email4@gmail.com";}
else if(($sendLocal == "cascais-oeiras") && ($sendCat == "eletricistas")){$mailToList = "email1@gmail.com";}
else if(($sendLocal == "cascais-oeiras") && ($sendCat == "pintores")){$mailToList = "email1@gmail.com, email2@gmail.com, email3@gmail.com, email4@gmail.com, email5@gmail.com";}
...
?>
这扩展了几行(约480行),因为大约有13个位置($sendLocal)和36个服务类别($sendCat)。电子邮件是硬编码的脚本,管理它们是一个巨大的麻烦
现在,我不需要编写完整的脚本,我只需要一些关于从哪里开始以及使用什么方法的指导。我需要一种方法来跨越2个变量(在本例中是位置和类型),它将返回仅存在于这两个变量中的变量
有没有更好的方法来做到这一点,而不使用500“如果”行列表?我可以从头开始编写代码,或者使用另一种语言/脚本altogheter
谢谢。我将定义一个
数组,然后从数组中获取地址。请参见下面的示例
当然,如果您将地址存储在数据库(sqlite、mysql等)中会更好,这样您就不需要在每次需要添加/删除/更改地址时编辑一段代码(这很容易出错&比较困难)
<?php
$lists = [
'cascais-oeiras_canalizadores' => [
'address@example.com',
'moar@example.com',
],
'cascais-oeiras_eletricistas' => [
'address@example.com',
'moar@example.com',
],
# ... and so forth
];
# Note you don't *need* to have $lists hard-coded here, obviously, you could
# also get it from somwhere else, like, read it from a database or text file.
$key = "{$sendLocal}_{$sendCat}";
if (!isset($lists($key)) {
print('No such list');
exit(1);
}
$mailToList = implode(', ', $lists);