PHP使用短代码添加到系统中,但如何做到这一点


PHP Using short codes to add to system but how to do it?

我想获取一个短字符串,并在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列来存储这些数据,并为你的自定义代码使用相关的状态表,这有什么特别的原因吗?它将使您的软件更容易升级和维护(更不用说调试了!)。

相关文章: