使用sscanf传递'模板句子'?

时间:2012-07-01 04:35:45

标签: php string

使用PHP的sscanf读取用户提交的句子并尝试从中获取数据是否合适?例如:

用户输入:

"James is child of Bill"我希望$child="james"$parent="bill"

或:"Mary is the mother of kate"我希望$child="kate"$parent="mary"

我可能需要提取其他可能的句子格式(不超过100-ish)。

我应该使用:

$templates = array("%s is a child of %s","%s is the mother of %s");
$i=0;
$max = count($templates);
while( ($test == -1) && (i < $max) ) {
    $test = sscanf($userInput, $templates[i]);
    $i++;
}
if(i < $max) {
    sscanf($userInput, $templates[i],$child,&parent);//hmm, what if $child,&parent should be the other way around?
} else {
    echo "template not found for sentence";
}

?所以我可以看到一点,你能看到一个更好的方法,或者让这个解决方案有效的方法吗?

真的很感激!

1 个答案:

答案 0 :(得分:0)

欢迎来到图论区域。我不认为你可以用句子模板解决你的问题。幸运的是,这里讨论了类似的主题。有关该讨论,请参阅此主题How to Model Real-World Relationships in a Graph Database (like Neo4j)?