Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查询字符串的Javascript或PHP语法突出显示?_Php_Javascript_Query String_Syntax Highlighting - Fatal编程技术网

查询字符串的Javascript或PHP语法突出显示?

查询字符串的Javascript或PHP语法突出显示?,php,javascript,query-string,syntax-highlighting,Php,Javascript,Query String,Syntax Highlighting,有很多语法高亮显示工具,但我没有看到支持高亮显示查询字符串的工具 我正在寻找一些东西来记录我的API,作为一个API,需要用到很多查询字符串。所以有哪些好的javascript或PHP语法高亮器支持查询字符串 我已经调查过,还有其他一些,但似乎没有一个能够突出这一点: /oauth/authorize?client_id=wG2X7q1qz74zdSbgiFkyL5JFOeloQwg2opfrPfaJ&response_type=code&redirect_uri=https%3

有很多语法高亮显示工具,但我没有看到支持高亮显示查询字符串的工具

我正在寻找一些东西来记录我的API,作为一个API,需要用到很多查询字符串。所以有哪些好的javascript或PHP语法高亮器支持查询字符串

我已经调查过,还有其他一些,但似乎没有一个能够突出这一点:

/oauth/authorize?client_id=wG2X7q1qz74zdSbgiFkyL5JFOeloQwg2opfrPfaJ&response_type=code&redirect_uri=https%3A%2F%2Fmyapplication.com%2Foauth&scope=account%2Ccompetition%2Cvideos&state=d41d8cd98f00b204e9800998ecf8427e
它应该突出显示一种颜色上的所有键,以及另一种颜色上的所有值,并且&?=再次是不同的颜色。。。比如:

就我而言,所有像“?”、“&”和“=”这样的字符都应该在正确URL的名称/值中替换。这使得解析非常容易

那么,为什么不自己发明一些东西呢:

function parseQuery(query){
    parsed = query.split('?');
    if (parsed.length > 1) {
        parsed[1] = parsed[1].split('&');
        for(i in parsed[1]) {
            parsed[1][i] = parsed[1][i].split('=');
        }
    }
    retStr = '<span class="path">' + parsed[0] + '</span>';
    if (parsed.length > 1) {
        retStr += '<span class="qm">?</span>';
        first = true;
        for(i in parsed[1]) {
            if (first) {
                first = false;
            } else {
                retStr += '<span class="amp">&</span>';
            }
            retStr += '<span class="name">' + parsed[1][i][0] + '</span>';
            if (parsed[1][i].length > 1) {
                retStr += '<span class="eq">=</span>' +
                '<span class="value">' + parsed[1][i][1] + '</span>';
            }
            if (parsed[1][i].length > 2) {
                for (var j = 2; j < parsed[1][i].length; j++) {
                      retStr += '<span class="eq">=</span>';
                      retStr += '<span class="error">' + parsed[1][i][j] + '</span>';
                }
            }
        }
    }
    if (parsed.length > 2) {
        for (var i = 2; i < parsed.length; i++) {
              retStr += '<span class="qm">?</span>';
              retStr += '<span class="error">' + parsed[i] + '</span>';
        }
    }
    return retStr;
}
函数解析查询(查询){
parsed=query.split(“?”);
如果(解析长度>1){
已解析[1]=已解析[1]。拆分('&');
for(已解析[1]中的i){
已解析[1][i]=已解析[1][i]。拆分('=');
}
}
retStr=''+已解析[0]+'';
如果(解析长度>1){
retStr+='?';
第一个=正确;
for(已解析[1]中的i){
如果(第一){
第一个=假;
}否则{
retStr+='&';
}
retStr+=''+已解析[1][i][0]+'';
if(已解析[1][i]。长度>1){
retStr+='='+
''+已解析[1][i][1]+'';
}
if(已解析[1][i]。长度>2){
for(var j=2;j2){
for(var i=2;i

真是个好问题。。。。我不得不记录同样的事情,甚至从来没有想过要问。。。事实上,为什么chrome/Firefox不能对整个地址栏进行颜色编码?类似,但不是相同的请求:出于格式化原因,您将如何更改此选项以支持在多行上高亮显示?例如,在获取时将b.innerHTML更改为b.textContent,现在似乎工作正常。parseQuery对字符串进行操作,innerHTML正在传递&;双重可怕;我试过innerText,但不起作用,我不知道textContent!