我在PHP中制作机器人,我想要一种更好的方法将用户输入解析为参数,以便以后的操作。
一个例子是用户说" / addresponse - " test" - "作品""
我想将此字符串解析为:
$command ["test", "works"];
我找到了PHP命令解析器,但是我希望用户能够使用人类可读的命令,而不是输入类似/ addresponse的内容?p =" test"& r =" works& #34;
现在我正在使用正则表达式,因此用户可以键入" / addresponse" test" "工作""但是存在明显的问题,因为用户无法对“测试”进行回复。''只有'测试'
我很感激任何帮助,现在我觉得我可以制作一个正则表达式来获取所有文字。 - '但我仍然认为这不是最佳解决方案。
我只是考虑使用正则表达式来查找'之间的文本。 - "'虽然这比引号之间更好,但它并没有解决整个问题,因为如果输入包含'它仍然会破坏。 - "&#39 ;.包含此字符串的字符串并不常见,但我希望解决方案几乎所有输入都不会破坏它。
这是一个愚蠢的问题吗?我不认为有一个内置的PHP功能,它没有评论就被投票了...
答案 0 :(得分:0)
我找到了部分解决方案:
function parse_cmd($command) {
$command = explode(' -"', $command);
array_splice($command, 0, 1);
foreach($command as &$element) {
$element = substr($element, 0, strlen($element) -1);
}
return $command;
}
这将在“ - ”之后拆分所有内容并将其作为数组返回