我想获取一个短字符串,并在PHP中对其进行操作,以便将其各个部分插入数据库的各个部分。
这是我想在系统中添加联系人信息的一种方式。
我用一系列短代码来表示我希望字符串做什么
- NC=新联系人
- DESC=联系人的描述
- MB=手机号码
- HM=家庭电话号码
- BS=业务号码
- EM=电子邮件地址
例如:
$string = "NC John Doe DESC President USA MB 555123123 HM 12341234 EM john@example.net"
等等。我不明白为什么要限制长度。
你会用PHP做些什么来使它变得简单?我想将电话号码添加到电话表,将电子邮件添加到电子邮件表,将联系人添加到联系人表。
我还有更新的短代码(为现有联系人添加更多号码)
- UPD-更新联系人X
- AMB-添加单元格
- (Axx-添加"A")
- 我不会为删除/更改而烦恼
$string = "UPD John Doe AMB 55512341233 AEM john2@example.net"
我知道把东西输入系统有点奇怪,但当我在跑步时打字很快。
我同意Michael J.V.关于使用数组的观点。添加/更改操作很容易
示例:
function getAction($action) {
$actions = array(
'NC' => 'New contact',
'DESC' => 'A description of the contact',
'MB' => 'A cell phone number',
'HM' => 'A home phone number',
'BS' => 'A business number',
'EM' => 'An email address',
);
return $actions[$action];
}
$selected = 'DESC';
echo 'Action Selected: '.getAction($selected)."'n";
您可能想要研究正则表达式模式匹配,但在提取命令后,您还需要为与数据库交互的任何内容提供几乎防弹的安全性。
因此,如果插入/更新/删除电话号码,请确保命令的"正文"仅为数字(或者如果接受,则仅为数字和空格以及+符号),依此类推
按照OP建议的方法,我将使用数组(如另一个答案所示)来完成此操作,但在进入数据库之前对其进行序列化,在出来时取消序列化。
另一种选择是创建一个自定义类,该类处理与数组相同的内容,但也可以验证和清理进出数据库的内容。
话虽如此。为什么你不习惯使用DB列来存储这些数据,并为你的自定义代码使用相关的状态表,这有什么特别的原因吗?它将使您的软件更容易升级和维护(更不用说调试了!)。