class ProcessUtils

ProcessUtils is a bunch of utility methods.

This class contains static methods only and is not meant to be instantiated.

@author Martin Hasoň <martin.hason@gmail.com>

Hierarchy

Expanded class hierarchy of ProcessUtils

1 file declares its use of ProcessUtils
ProcessUtilsTest.php in drupal/core/vendor/symfony/process/Symfony/Component/Process/Tests/ProcessUtilsTest.php

File

drupal/core/vendor/symfony/process/Symfony/Component/Process/ProcessUtils.php, line 21

Namespace

Symfony\Component\Process
View source
class ProcessUtils {

  /**
   * This class should not be instantiated
   */
  private function __construct() {
  }

  /**
   * Escapes a string to be used as a shell argument.
   *
   * @param string $argument The argument that will be escaped
   *
   * @return string The escaped argument
   */
  public static function escapeArgument($argument) {

    //Fix for PHP bug #43784 escapeshellarg removes % from given string

    //Fix for PHP bug #49446 escapeshellarg dosn`t work on windows

    //@see https://bugs.php.net/bug.php?id=43784

    //@see https://bugs.php.net/bug.php?id=49446
    if (defined('PHP_WINDOWS_VERSION_BUILD')) {
      $escapedArgument = '';
      foreach (preg_split('/([%"])/i', $argument, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE) as $part) {
        if ('"' == $part) {
          $escapedArgument .= '\\"';
        }
        elseif ('%' == $part) {
          $escapedArgument .= '^%';
        }
        else {
          $escapedArgument .= escapeshellarg($part);
        }
      }
      return $escapedArgument;
    }
    return escapeshellarg($argument);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ProcessUtils::escapeArgument public static function Escapes a string to be used as a shell argument.
ProcessUtils::__construct private function This class should not be instantiated