Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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
PHP与Javascript的迭代_Javascript_Php_Jquery - Fatal编程技术网

PHP与Javascript的迭代

PHP与Javascript的迭代,javascript,php,jquery,Javascript,Php,Jquery,好的,所以我试着数一数IP。我有一个PHP版本和一个JQuery/Javascript版本。PHP的工作是一个梦想,除了在PHP脚本完成之前不输出到屏幕,但我同意。我遇到的问题是jquery/javascript版本。计算第四个八位组是可以的,但是当计算第三个八位组时,我有一个奇怪的问题 基本上,如果我的范围是10.211.55.254-10.211.56.2,我很好。但是,如果将ip地址增加到10.211.56.3或更高,我会得到以下结果: 10.211.55.250 10.211.56.25

好的,所以我试着数一数IP。我有一个PHP版本和一个JQuery/Javascript版本。PHP的工作是一个梦想,除了在PHP脚本完成之前不输出到屏幕,但我同意。我遇到的问题是jquery/javascript版本。计算第四个八位组是可以的,但是当计算第三个八位组时,我有一个奇怪的问题

基本上,如果我的范围是10.211.55.254-10.211.56.2,我很好。但是,如果将ip地址增加到10.211.56.3或更高,我会得到以下结果:

10.211.55.250
10.211.56.250
只有在增加、减少到10.211.55.254以下仍然有效时,才会发生这种情况

这里是每个脚本的脚本,我在Javascript上哪里出错/丢失了

The Javascript

var startiparrayslice = startiparray.slice( 0, 2);

for ( var octet3 = startiparray[2] ; octet3 <= endiparray[2]; octet3++) {
    var pingip2 = startiparrayslice.join(".") + "." + octet3;

    if (startiparray[3] > endiparray[3]) {
        endiparrayorig = endiparray[3];
        endiparray[3] = 255;

    }


for ( var octet4 = startiparray[3] ; octet4 <= endiparray[3]; octet4++) {

    if (octet4 == endiparray[3]) {
        startiparray[3] = 0;
        endiparray[3] = endiparrayorig;

    }

    var pingip = pingip2 + "." + octet4; 

    $.post("ping-query-process.php", {  
        pingformip:pingip
    },
Javascript
var startiparraysicle=startiparray.slice(0,2);
对于(var octet3=起始阵列[2];octet3 endiparray[3]){
endiparrayorig=endiparray[3];
endiparray[3]=255;
}

对于(var-octet4=startiparray[3];octet4我没有看到它的出现!!在测试和使用大量的警报框之后,我缩小了范围,认为数组1[3]没有在某些数字上与数组2[3]进行比较。不要问我为什么只在某些数字上进行比较,因为我不知道(答案请写在明信片上)

我可以看到数组试图使用array2[3].构造函数比较字符串,而实际上我需要比较数字

if (parseInt(startiparray[3]) > parseInt(endiparray[3])) { }
这将数组元素作为数字进行比较,我能够在故障切换之前遍历3-9

我仍然想理解为什么……因为我对开发还不熟悉,这是一条快速的学习曲线


谢谢

Ok进一步的测试表明,这只适用于10.211.56.3-9中的IP。例如,如果i ping 10.211.55.254-10.211.56.2,它会工作。如果i ping 10.211.55.254-10.211.56.3-9,它会失败,如果i ping 10.211.55.254-10.211.56.10,它会工作……更混乱。进一步的测试看起来无法在第一个if状态中进行比较ent如果终端ip在3-9之间。你能给我们一个示例数组,这样我们就可以自己运行它了吗?有两个数组1,startiparray[10211,55254]和2,例如endiparray[10211,56,3]。我使用了一个不适用于我的示例!
if (parseInt(startiparray[3]) > parseInt(endiparray[3])) { }