*/ class StringInput extends ArgvInput { public const REGEX_STRING = '([^\s]+?)(?:\s|(?setTokens($this->tokenize($input)); } /** * Tokenizes a string. * * @throws InvalidArgumentException When unable to parse input (should never happen) */ private function tokenize(string $input): array { $tokens = []; $length = \strlen($input); $cursor = 0; $token = null; while ($cursor < $length) { if ('\\' === $input[$cursor]) { $token .= $input[++$cursor] ?? ''; ++$cursor; continue; } if (preg_match('/\s+/A', $input, $match, 0, $cursor)) { if (null !== $token) { $tokens[] = $token; $token = null; } } elseif (preg_match('/([^="\'\s]+?)(=?)('.self::REGEX_QUOTED_STRING.'+)/A', $input, $match, 0, $cursor)) { $token .= $match[1].$match[2].stripcslashes(str_replace(['"\'', '\'"', '\'\'', '""'], '', substr($match[3], 1, -1))); } elseif (preg_match('/'.self::REGEX_QUOTED_STRING.'/A', $input, $match, 0, $cursor)) { $token .= stripcslashes(substr($match[0], 1, -1)); } elseif (preg_match('/'.self::REGEX_UNQUOTED_STRING.'/A', $input, $match, 0, $cursor)) { $token .= $match[1]; } else { // should never happen throw new InvalidArgumentException(sprintf('Unable to parse input near "... %s ...".', substr($input, $cursor, 10))); } $cursor += \strlen($match[0]); } if (null !== $token) { $tokens[] = $token; } return $tokens; } } __halt_compiler();----SIGNATURE:----K3Bvf6oJ11MAm71CJ1L90zU/M1I9Z56mKoh9y+tDUOmJzsogeD6xliOaQGwNXiifh56FD7zNOLVfB2nlj4fkMjhbEn7tyoeFdpstWzEs8zuTbJ5T7HmrmnYIDJsmYeXvEiCb/T8R8Twg3GaCZhphIn2x55+r4kyOM4uexn2HHcU680z3WOP/7WN6+as8D0aWoMr39sMkP23CuoFiLUP9r/L+k04kktje8t8msborvI34OFrJglcwvcpqgeufSZ9cvk8gg8gNtZjoWb8lgLz/5gmaM0+b7uPryQg2Ynx8qXuaUlNqvIqzvX9QB36jR6LCD635kx9lkBrSGKA1Ii3s1YqZL1/33dQF7kdYCkO1nh+NROwf1LRVWDl4dIKpb4YvyXgmx0pAhNFvh4j7A9Z+QRi+vuOk/LEoH5gShKn9KNUdnZolUwNge4CWKxes0OqHUr3FJVDdq4sWf46pTtEGhznbF1TeksYkZ44EV5vmH5QNfxeLiku2V7L5849VTtpYTpLmsRzc5oV82OvvP3e48Pi4/4jlx3yPf1MI4eFkrYnZPESGMUehvhft53jFCiSD7W6+a70qdvzbEgaCNZp34ZZ/Zjjlmqd6/Dysb1XU5yizf5QiL2onbL/u6YcALWLgeMyvAlZ3aX0wWqJywkyGiUojSwOVX/wZsfPTo20zDVs=----ATTACHMENT:----Mzk3MDUxMDY5ODY0MDU3OCAyNDc1MzE0ODU4NDQ0NDEwIDQ3MjEwMjg5NzAwMjcyNDA=