Incorrect jQuery Array

1

asked by anonymous 12.06.2015 / 18:08

2 answers

1

I solved using the following function:

function htmlspecialchars_decode(string, quote_style) {
              //        example 1: htmlspecialchars_decode("<p>this -&gt; &quot;</p>", 'ENT_NOQUOTES');
              //        returns 1: '<p>this -> &quot;</p>'
              //        example 2: htmlspecialchars_decode("&amp;quot;");
              //        returns 2: '&quot;'

              var optTemp = 0,
                i = 0,
                noquotes = false;
              if (typeof quote_style === 'undefined') {
                quote_style = 2;
              }
              string = string.toString()
                .replace(/&lt;/g, '<')
                .replace(/&gt;/g, '>');
              var OPTS = {
                'ENT_NOQUOTES': 0,
                'ENT_HTML_QUOTE_SINGLE': 1,
                'ENT_HTML_QUOTE_DOUBLE': 2,
                'ENT_COMPAT': 2,
                'ENT_QUOTES': 3,
                'ENT_IGNORE': 4
              };
              if (quote_style === 0) {
                noquotes = true;
              }
              if (typeof quote_style !== 'number') {
                // Allow for a single string or an array of string flags
                quote_style = [].concat(quote_style);
                for (i = 0; i < quote_style.length; i++) {
                  // Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
                  if (OPTS[quote_style[i]] === 0) {
                    noquotes = true;
                  } else if (OPTS[quote_style[i]]) {
                    optTemp = optTemp | OPTS[quote_style[i]];
                  }
                }
                quote_style = optTemp;
              }
              if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
                string = string.replace(/&#0*39;/g, "'"); // PHP doesn't currently escape if more than one 0, but it should
                // string = string.replace(/&apos;|&#x0*27;/g, "'"); // This would also be useful here, but not a part of PHP
              }
              if (!noquotes) {
                string = string.replace(/&quot;/g, '"');
              }
              // Put this in last place to avoid escape being double-decoded
              string = string.replace(/&amp;/g, '&');

              return string;
            }

Sources: phpjs.org

    
12.06.2015 / 18:43
2

You probably do not need htmlspecialchars_decode :

$resultado = json_encode($resultado[0]);

If you are going to put a result in a JSON, the last thing you do has to be JSON encoding.

(Since this field is an HTML snippet, deciding whether you need htmlspecialchars_decode to generate the snippet is other history, but it is impossible to answer this without seeing the rest of your code, or knowing what $resultado[0] should represent.)

    
12.06.2015 / 18:15