将命令参数的用户输入解析为数组

时间:2017-08-16 09:50:14

标签: php-7

我在PHP中制作机器人,我想要一种更好的方法将用户输入解析为参数,以便以后的操作。

一个例子是用户说" / addresponse - " test" - "作品""

我想将此字符串解析为:

$command ["test", "works"];

我找到了PHP命令解析器,但是我希望用户能够使用人类可读的命令,而不是输入类似/ addresponse的内容?p =" test"& r =" works& #34;

现在我正在使用正则表达式,因此用户可以键入" / addresponse" test" "工作""但是存在明显的问题,因为用户无法对“测试”进行回复。''只有'测试'

我很感激任何帮助,现在我觉得我可以制作一个正则表达式来获取所有文字。 - '但我仍然认为这不是最佳解决方案。

我只是考虑使用正则表达式来查找'之间的文本。 - "'虽然这比引号之间更好,但它并没有解决整个问题,因为如果输入包含'它仍然会破坏。 - "&#39 ;.包含此字符串的字符串并不常见,但我希望解决方案几乎所有输入都不会破坏它。

这是一个愚蠢的问题吗?我不认为有一个内置的PHP功能,它没有评论就被投票了...

1 个答案:

答案 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;
}

这将在“ - ”之后拆分所有内容并将其作为数组返回