PocketMine-MP
5.23.3 git-976fc63567edab7a6fb6aeae739f43cf9fe57de4
Loading...
Searching...
No Matches
CommandStringHelper.php
1
<?php
2
3
/*
4
*
5
* ____ _ _ __ __ _ __ __ ____
6
* | _ \ ___ ___| | _____| |_| \/ (_)_ __ ___ | \/ | _ \
7
* | |_) / _ \ / __| |/ / _ \ __| |\/| | | '_ \ / _ \_____| |\/| | |_) |
8
* | __/ (_) | (__| < __/ |_| | | | | | | | __/_____| | | | __/
9
* |_| \___/ \___|_|\_\___|\__|_| |_|_|_| |_|\___| |_| |_|_|
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU Lesser General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* @author PocketMine Team
17
* @link http://www.pocketmine.net/
18
*
19
*
20
*/
21
22
declare(strict_types=1);
23
24
namespace
pocketmine\command\utils;
25
26
use
pocketmine\utils\AssumptionFailedError
;
27
use
function
preg_last_error_msg;
28
use
function
preg_match_all;
29
use
function
preg_replace;
30
31
final
class
CommandStringHelper
{
32
33
private
function
__construct(){
34
//NOOP
35
}
36
48
public
static
function
parseQuoteAware
(
string
$commandLine) : array{
49
$args = [];
50
preg_match_all(
'/"((?:\\\\.|[^\\\\"])*)"|(\S+)/u'
, $commandLine, $matches);
51
foreach
($matches[0] as $k => $_){
52
for
($i = 1; $i <= 2; ++$i){
53
if
($matches[$i][$k] !==
""
){
54
$match = $matches[$i][$k];
55
$args[] = preg_replace(
'/\\\\([\\\\"])/u'
,
'$1'
, $match) ??
throw
new
AssumptionFailedError
(preg_last_error_msg());
56
break
;
57
}
58
}
59
}
60
61
return
$args;
62
}
63
}
pocketmine\command\utils\CommandStringHelper
Definition
CommandStringHelper.php:31
pocketmine\command\utils\CommandStringHelper\parseQuoteAware
static parseQuoteAware(string $commandLine)
Definition
CommandStringHelper.php:48
pocketmine\utils\AssumptionFailedError
Definition
AssumptionFailedError.php:31
src
command
utils
CommandStringHelper.php
Generated by
1.12.0