拆分/解析php表单数据一个输入

时间:2013-07-11 08:25:55

标签: php arrays string parsing split

我不知道如何用这种格式解析这些数据:

name<space>age<space>city

当名称和城市可以包含多个单词并且可以在用户输入22年或2年时处理

我真的很感激任何人的帮助或指导。

stephanie brown 22 AAA BBB

OR

stephanie brown 22 year AAA BBB

OR

stephanie brown 22 yr AAA BBB

输出如:

Name : Stephanie Brown
Age  : 22
City : AAA BBB

2 个答案:

答案 0 :(得分:0)

最好的办法是将输入转换为数组,并使用空格作为分隔符进行爆炸。

然后使用状态来确定您是否在名称,年龄,地址中进行解析。年龄是数字,因此很容易从name-&gt; age状态移动,然后age之后的下一个值应该是地址,除非它具有“year | yr | yrs”的值。它不会100%完美,但它会起作用。

答案 1 :(得分:0)

试试这个: -

$string = 'stephanie brown 22 year AAA BBB';//your input string
$patterns = array();
$patterns[0] = '/year/';
$patterns[1] = '/yr/';

$year_removed_string=preg_replace($patterns, "", $string);
$keywords = preg_split("/[\s]+/", $year_removed_string);

print_r($keywords)

这里名称和城市应该是一个单词,或者如果两个单词没有空格分隔。尽管它不是完美的答案,但也可以是有用的。或者输入是这样的:

stephanie_brown  22 year AAA_BBB