【发布时间】:2011-10-07 08:05:48
【问题描述】:
我正在向用户请求以下格式
KEYWORD <name> , <city> , <24:00 hour time>
第 5 点最重要,我想确保以所有可能的方式解析 。
我做了什么/想要什么
1、拆分输入得到$info(= $input - $keyword)如下:
$key = 'abc'; $msg = 'ABC blah, blah, blah';
$pat = "/^(?i)$key/";
$split = preg_split($pat, $msg);
$info = $split[1]; //$split[0] = ''; //empty string
2。我的用户很笨。她/他将“发短信(SMS)”输入。所以我想将$info 拆分为字符,(希望只会出现两次)并将三个子字符串分别存储到$usName, $usCity, $usTime 中(前缀我们=不安全的数据,处理后的数据进入数据库)
所以我想我会关注
$split = preg_split('/,/', $info);
foeach($split as $block) {
if(preg_match('/[12]?:\d{2}/', $block) {
$usTime = $block;
}
} //what do I do for $usName and $usCity
3。 $usName 直接进入数据库(不用担心我使用准备好的 stmts)
4.$usCity需要映射到DB表中的一个City。我已经索引了 City_Variance 和 City_Key 表,它们通过 City_Variance_City_Key 表相互映射。因此,错误输入的输入可以映射到正确的索引城市名称。现在假设 City_Variance 有 /[:upper:]+/ 所以没有多字城市(即不是 Los Angeles)
5. 这是最有趣的部分,$usTime。此字段的预期用途是在不久的将来创建约会。找到Datejs。这都是 PHP 服务器端代码,我不认为我可以在不模拟浏览器的情况下使用简单 JavaScript 库的强大功能
有谁知道可以帮助我解析用户输入的库,例如Datejs?
【问题讨论】:
-
你的问题有点混乱。你能简单地删除不相关的部分而不是删除它们吗? :)