Parse str php


if you need custom arg separator, you can use this function. it returns parsed  query as associative array.

<?php

/**
* Parses http query string into an array
*
* @author Alxcube <alxcube@gmail.com>
*
* @param string $queryString String to parse
* @param string $argSeparator Query arguments separator
* @param integer $decType Decoding type
* @return array
*/
function http_parse_query($queryString, $argSeparator = '&', $decType = PHP_QUERY_RFC1738).


class="keyword">);

        foreach ($parts as $part) {
                list(
$paramName, $paramValue)   = explode('=', $part, 2);

                switch ($decType) {
                        case
PHP_QUERY_RFC3986:
  &.


   = rawurldecode($paramValue);
                                break;

                        case PHP_QUERY_RFC1738:
                        default:
                               
$paramName      = urldecode($paramName);
                  &n.


bsp;      

                if (preg_match_all('/[([^]]*)]/m', $paramName, $matches)) {
                       
$paramName      = substr($paramName, 0, strpos($paramName, '['));
          &nbs.


/>                       
$keys           = array($paramName);
                }
               
               
$target         = &$result;
               
                foreach (
$keys as $index) {
                        if (

rray($target)) {
                                               
$intKeys        = array_filter(array_keys($target), 'is_int');
                                               
$index  = count($intKeys

sp;                               $target = array($target);
                                               
$index  = 1;
                                        }
                                } else {
                                       

p;   }
                        } elseif (isset($target[$index]) && !is_array($target[$index])) {
                               
$target[$index] = array($target[$index]);
                        }

                        $target         = &$target[$index];
                }


                if (is_array($target)) {
                       
$target[]   = $paramValue;
                } else {
                       
$target     = $paramValue;
                }
        }

        return $result;
}

?>

php.net

function like parse_str, but doesn't convert spaces and dots to underscores in $_GET AND $_POST


/**
 * GET and POST input containing dots, etc.
 */
function getRealREQUEST() {
    $vars = array();

    $input    = $_SERVER['REDIRECT_QUERY_STRING'];
    if(!empty($input)){
        $pairs    = explode("&", $input);
        foreach ($pairs     as $pair) {
            $nv                = explode("=", $pair);
           
            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^[]*)[.*$/','$1',$name);
           
            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);
           
            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }


nbsp;   
            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^[]*)[.*$/','$1',$name);
           
            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);
           
            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }
    }
   
    return $vars;
}

www.theserverpages.com

function like parse_str, but doesn't convert spaces and dots to underscores in $_GET AND $_POST

/**
 * GET and POST input containing dots, etc.
 */
function getRealREQUEST() {
    $vars = array();

    $input    = $_SERVER['REDIRECT_QUERY_STRING'];
    if(!empty($input)){
        $pairs    = explode("&", $input);
        foreach ($pairs     as $pair) {
            $nv                = explode("=", $pair);
           
            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^[]*)[.*$/','$1',$name);
           
            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);
           
            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }
    }
   
    $input    = file_get_contents("php://input");
    if(!empty($input)){
        $pairs    = explode("&", $input);
        foreach ($pairs as $pair) {
            $nv                = explode("=", $pair);
           
            $name            = urldecode($nv[0]);
            $nameSanitize    = preg_replace('/([^[]*)[.*$/','$1',$name);
           
            $nameMatched    = str_replace('.','_',$nameSanitize);
            $nameMatched    = str_replace(' ','_',$nameMatched);
           
            $vars[$nameSanitize]    = $_REQUEST[$nameMatched];
        }
    }
   
    return $vars;
}

php.theraven7.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.