PMA\libraries\URL::getArgSeparator PHP Method

getArgSeparator() public static method

extracted from arg_separator.input as set in php.ini we do not use arg_separator.output to avoid problems with & and &
public static getArgSeparator ( string $encode = 'none' ) : string
$encode string whether to encode separator or not, currently 'none' or 'html'
return string character used for separating url parts usually ; or &
    public static function getArgSeparator($encode = 'none')
    {
        static $separator = null;
        static $html_separator = null;
        if (null === $separator) {
            // use separators defined by php, but prefer ';'
            // as recommended by W3C
            // (see https://www.w3.org/TR/1999/REC-html401-19991224/appendix
            // /notes.html#h-B.2.2)
            $arg_separator = ini_get('arg_separator.input');
            if (mb_strpos($arg_separator, ';') !== false) {
                $separator = ';';
            } elseif (strlen($arg_separator) > 0) {
                $separator = $arg_separator[0];
            } else {
                $separator = '&';
            }
            $html_separator = htmlentities($separator);
        }
        switch ($encode) {
            case 'html':
                return $html_separator;
            case 'text':
            case 'none':
            default:
                return $separator;
        }
    }

Usage Example

Example #1
0
 /**
  * Returns HTML code to include javascript file.
  *
  * @param array $files The list of js file to include
  *
  * @return string HTML code for javascript inclusion.
  */
 private function _includeFiles($files)
 {
     $first_dynamic_scripts = "";
     $dynamic_scripts = "";
     $scripts = array();
     $separator = URL::getArgSeparator();
     foreach ($files as $value) {
         if (mb_strpos($value['filename'], "?") !== false) {
             $file_name = $value['filename'] . $separator . Header::getVersionParameter();
             if ($value['before_statics'] === true) {
                 $first_dynamic_scripts .= "<script data-cfasync='false' type='text/javascript' " . "src='js/" . $file_name . "'></script>";
             } else {
                 $dynamic_scripts .= "<script data-cfasync='false' " . "type='text/javascript' src='js/" . $file_name . "'></script>";
             }
             continue;
         }
         $include = true;
         if ($include) {
             $scripts[] = "scripts%5B%5D=" . $value['filename'];
         }
     }
     $separator = URL::getArgSeparator();
     $static_scripts = '';
     // Using chunks of 20 files to avoid too long URLs
     $script_chunks = array_chunk($scripts, 20);
     foreach ($script_chunks as $script_chunk) {
         $url = 'js/get_scripts.js.php?' . implode($separator, $script_chunk) . $separator . Header::getVersionParameter();
         $static_scripts .= sprintf('<script data-cfasync="false" type="text/javascript" src="%s">' . '</script>', htmlspecialchars($url));
     }
     return $first_dynamic_scripts . $static_scripts . $dynamic_scripts;
 }
All Usage Examples Of PMA\libraries\URL::getArgSeparator