PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.9.2
Independent Analytics – WordPress Analytics Plugin v2.9.2
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / vendor / illuminate / support / ProcessUtils.php
ProcessUtils.php
65 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWPSCOPED\Illuminate\Support;
4
5 /**
6 * ProcessUtils is a bunch of utility methods.
7 *
8 * This class was originally copied from Symfony 3.
9 * @internal
10 */
11 class ProcessUtils
12 {
13 /**
14 * Escapes a string to be used as a shell argument.
15 *
16 * @param string $argument
17 * @return string
18 */
19 public static function escapeArgument($argument)
20 {
21 // Fix for PHP bug #43784 escapeshellarg removes % from given string
22 // Fix for PHP bug #49446 escapeshellarg doesn't work on Windows
23 // @see https://bugs.php.net/bug.php?id=43784
24 // @see https://bugs.php.net/bug.php?id=49446
25 if ('\\' === \DIRECTORY_SEPARATOR) {
26 if ('' === $argument) {
27 return '""';
28 }
29 $escapedArgument = '';
30 $quote = \false;
31 foreach (\preg_split('/(")/', $argument, -1, \PREG_SPLIT_NO_EMPTY | \PREG_SPLIT_DELIM_CAPTURE) as $part) {
32 if ('"' === $part) {
33 $escapedArgument .= '\\"';
34 } elseif (self::isSurroundedBy($part, '%')) {
35 // Avoid environment variable expansion
36 $escapedArgument .= '^%"' . \substr($part, 1, -1) . '"^%';
37 } else {
38 // escape trailing backslash
39 if ('\\' === \substr($part, -1)) {
40 $part .= '\\';
41 }
42 $quote = \true;
43 $escapedArgument .= $part;
44 }
45 }
46 if ($quote) {
47 $escapedArgument = '"' . $escapedArgument . '"';
48 }
49 return $escapedArgument;
50 }
51 return "'" . \str_replace("'", "'\\''", $argument) . "'";
52 }
53 /**
54 * Is the given string surrounded by the given character?
55 *
56 * @param string $arg
57 * @param string $char
58 * @return bool
59 */
60 protected static function isSurroundedBy($arg, $char)
61 {
62 return 2 < \strlen($arg) && $char === $arg[0] && $char === $arg[\strlen($arg) - 1];
63 }
64 }
65