diff options
Diffstat (limited to 'node_modules/locutus/php/strings/parse_str.js')
-rw-r--r-- | node_modules/locutus/php/strings/parse_str.js | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/node_modules/locutus/php/strings/parse_str.js b/node_modules/locutus/php/strings/parse_str.js deleted file mode 100644 index 2ab8cb2..0000000 --- a/node_modules/locutus/php/strings/parse_str.js +++ /dev/null @@ -1,160 +0,0 @@ -'use strict'; - -module.exports = function parse_str(str, array) { - // eslint-disable-line camelcase - // discuss at: http://locutus.io/php/parse_str/ - // original by: Cagri Ekin - // improved by: Michael White (http://getsprink.com) - // improved by: Jack - // improved by: Brett Zamir (http://brett-zamir.me) - // bugfixed by: Onno Marsman (https://twitter.com/onnomarsman) - // bugfixed by: Brett Zamir (http://brett-zamir.me) - // bugfixed by: stag019 - // bugfixed by: Brett Zamir (http://brett-zamir.me) - // bugfixed by: MIO_KODUKI (http://mio-koduki.blogspot.com/) - // reimplemented by: stag019 - // input by: Dreamer - // input by: Zaide (http://zaidesthings.com/) - // input by: David Pesta (http://davidpesta.com/) - // input by: jeicquest - // bugfixed by: RafaĆ Kukawski - // note 1: When no argument is specified, will put variables in global scope. - // note 1: When a particular argument has been passed, and the - // note 1: returned value is different parse_str of PHP. - // note 1: For example, a=b=c&d====c - // example 1: var $arr = {} - // example 1: parse_str('first=foo&second=bar', $arr) - // example 1: var $result = $arr - // returns 1: { first: 'foo', second: 'bar' } - // example 2: var $arr = {} - // example 2: parse_str('str_a=Jack+and+Jill+didn%27t+see+the+well.', $arr) - // example 2: var $result = $arr - // returns 2: { str_a: "Jack and Jill didn't see the well." } - // example 3: var $abc = {3:'a'} - // example 3: parse_str('a[b]["c"]=def&a[q]=t+5', $abc) - // example 3: var $result = $abc - // returns 3: {"3":"a","a":{"b":{"c":"def"},"q":"t 5"}} - // example 4: var $arr = {} - // example 4: parse_str('a[][]=value', $arr) - // example 4: var $result = $arr - // returns 4: {"a":{"0":{"0":"value"}}} - // example 5: var $arr = {} - // example 5: parse_str('a=1&a[]=2', $arr) - // example 5: var $result = $arr - // returns 5: {"a":{"0":"2"}} - - var strArr = String(str).replace(/^&/, '').replace(/&$/, '').split('&'); - var sal = strArr.length; - var i; - var j; - var ct; - var p; - var lastObj; - var obj; - var chr; - var tmp; - var key; - var value; - var postLeftBracketPos; - var keys; - var keysLen; - - var _fixStr = function _fixStr(str) { - return decodeURIComponent(str.replace(/\+/g, '%20')); - }; - - var $global = typeof window !== 'undefined' ? window : global; - $global.$locutus = $global.$locutus || {}; - var $locutus = $global.$locutus; - $locutus.php = $locutus.php || {}; - - if (!array) { - array = $global; - } - - for (i = 0; i < sal; i++) { - tmp = strArr[i].split('='); - key = _fixStr(tmp[0]); - value = tmp.length < 2 ? '' : _fixStr(tmp[1]); - - while (key.charAt(0) === ' ') { - key = key.slice(1); - } - - if (key.indexOf('\x00') > -1) { - key = key.slice(0, key.indexOf('\x00')); - } - - if (key && key.charAt(0) !== '[') { - keys = []; - postLeftBracketPos = 0; - - for (j = 0; j < key.length; j++) { - if (key.charAt(j) === '[' && !postLeftBracketPos) { - postLeftBracketPos = j + 1; - } else if (key.charAt(j) === ']') { - if (postLeftBracketPos) { - if (!keys.length) { - keys.push(key.slice(0, postLeftBracketPos - 1)); - } - - keys.push(key.substr(postLeftBracketPos, j - postLeftBracketPos)); - postLeftBracketPos = 0; - - if (key.charAt(j + 1) !== '[') { - break; - } - } - } - } - - if (!keys.length) { - keys = [key]; - } - - for (j = 0; j < keys[0].length; j++) { - chr = keys[0].charAt(j); - - if (chr === ' ' || chr === '.' || chr === '[') { - keys[0] = keys[0].substr(0, j) + '_' + keys[0].substr(j + 1); - } - - if (chr === '[') { - break; - } - } - - obj = array; - - for (j = 0, keysLen = keys.length; j < keysLen; j++) { - key = keys[j].replace(/^['"]/, '').replace(/['"]$/, ''); - lastObj = obj; - - if ((key === '' || key === ' ') && j !== 0) { - // Insert new dimension - ct = -1; - - for (p in obj) { - if (obj.hasOwnProperty(p)) { - if (+p > ct && p.match(/^\d+$/g)) { - ct = +p; - } - } - } - - key = ct + 1; - } - - // if primitive value, replace with object - if (Object(obj[key]) !== obj[key]) { - obj[key] = {}; - } - - obj = obj[key]; - } - - lastObj[key] = value; - } - } -}; -//# sourceMappingURL=parse_str.js.map
\ No newline at end of file |