小编AHM*_*AHM的帖子

使用flow时忽略node_modules

flow在我的React Native应用程序中使用,flow的初始启动速度非常慢,因为它遍历我的node_modules目录.Flow报告来自这些第三方库的大量错误,我无法修复.

我可以告诉流程忽略其中的任何错误node_modules吗?我在配置文件中有这个:

[ignore]
.*/node_modules/.*
Run Code Online (Sandbox Code Playgroud)

然而,流程现在告诉抛出 react-native Required module not found.奇怪的是,导入React时没有拾取此错误.

flowtype

17
推荐指数
1
解决办法
7935
查看次数

查询字符串的正确编码是什么?

我试图从asp.net应用程序发送请求到这样的"http://mysite.dk/tværs?test=æ"的URL,并且我无法正确编码查询字符串.或者可能正确编码了查询字符串,我连接的服务只是无法正确理解.

我试图用不同的浏览器发送请求并记录他们如何使用Wireshark对请求进行编码,我得到了以下结果:

Firefox: http://mysite.dk/tv%C3%A6rs?test=%E6
Ie8:     http://mysite.dk/tv%C3%A6rs?test=\xe6
Curl:    http://mysite.dk/tv\xe6rs?test=\xe6

Firefox,IE和Curl都会从服务中获得正确的结果.请注意,它们在查询字符串中以不同方式编码丹麦特殊字符'æ'.

当我使用HttpWebRequest从我的asp.net应用程序发送请求时,URL以这种方式编码:

http://mysite.dk/tv%C3%A6rs?test=%C3%A6

它以与url的路径部分相同的方式对查询字符串进行编码.远程服务不理解这种编码,所以我得不到正确的答案.

记录中,'æ'(U + 00E6)是ISO-LATIN-1中的%E6,以及UTF-8中的%C3%A6.

我可以更改远程服务以接受UTF-8编码的查询字符串,但随后该服务将停止在浏览器中工作,我对此并不感兴趣.有没有办法指定.NET不应该使用UTF-8编码查询字符串?

我正在创建这样的webrequest:

var req = WebRequest.Create("http://mysite.dk/tværs?test=æ") as HttpWebRequest;
Run Code Online (Sandbox Code Playgroud)

但问题似乎来自System.Uri,它显然是在WebRequest.Create中使用的:

var uri = new Uri("http://mysite.dk/tværs?test=æ");
// now uri.AbsolutePath == "http://mysite.dk/tv%C3%A6rs?test=%C3%A6"
Run Code Online (Sandbox Code Playgroud)

c# asp.net encoding http query-string

8
推荐指数
2
解决办法
3446
查看次数

Windows上的Apache/PHP与正则表达式崩溃

我发现以下PHP代码在Windows Apache服务器上运行时崩溃:

<?php

$test = "0,4,447,11329,316,415,142,5262,6001,9527,11259,11236,1140,9770,9177,9043,11090,268,5270,9907,9196,10226,".
        "9399,1476,9368,6929,1659,11074,10869,8774,739,11344,10482,6399,8910,8997,11198,137,10148,10371,5128,767,2483,".
        "211,9973,10726,9299,778,11157,9497,275,9418,11141,241,5288,11324,776,10960,9289,7944,222,10686,11428,9723,".
        "10615,11399,9869,9083,10180,10043,9957,9387,9215,8869,9667,10174,10902,6607,9282,1259,395,10411,152,9344,8949,".
        "10923,8976,11042,11519,10704,10979,216,10044,9201,1721,5831,881,9721,1757,11054,1335,6151,9526,9081,111,498,".
        "2960,438,5313,206,318,10820,8192,6039,9161,11012,1717,1360,10757,4314,11280,9647,9346,10546,11006,9553,10365,".
        "6148,10565,4532,2776,4124,8853,6145,478,4539,540,9981,726,7186,11122,324,10524,1139,7900,9581,6869,1724,10851,".
        "10059,10018,11032,1290,3818,782,796,917,8740,6935,11439,10799,10948,249,2068,8778,6289,295,2766,9425,791,309,".
        "4753,10418,771,260,10835,10441,6434,10164,10475,10842,9013,11224,2247,8972,2141,2078,2152,475,9077,6291,10285,".
        "8067,753,6660,10889,431,2503,6007,9180,810,11447,2461,3689,7104,10150,10921,895,10598,747,10570,305,4497,11055,".
        "11496,10938,10722,8761,10086,11482,6780,6685,6918,10286,10659,9996,4074,9118,907,5192,283,2230,8884,6966,".
        "8820,8132,3598,9599,6796,11257,7049,5992,8637,4168,9017,7950,7165,10721,10037,1071,8044,759,11429,6380,".
        "10239,1593,9455,9704,10357,6737,2958,4051,9754,6564,11407,8716,7485,1528,6857,7406,9579,7259,1609,7820,".
        "4448,10289,1123,7005,8123,9316,914,9655,5280,9710,7822,510,10795,10476,8706,6160,8248,6978,9300,10643,".
        "7106,10250,519,7860,4733,904,8773,4714,8695,8633,6105,3312,11548,9580,10389,4886,4587,513,8485,4606,".
        "6471,581,526,637,3523,3772,3153,9336,9120,7633,3755,10087,524,10015,8563,556,1230,570,3652,569"
        .",8473,10209,3886,573,5363,4715,3865,9452,1218,7066,575,577,4724,7655"
        ;

$hest = preg_match('/^\d+(?:,\d+)+$/', $test);
var_dump($hest);
?>
Run Code Online (Sandbox Code Playgroud)

有趣的是,如果字符串更短,代码就可以工作 - 如果我注释掉字符串的最后一部分(行),代码就会运行并按预期工作.

但是,由于代码在此处显示,代码会导致Apache崩溃并重新生成 - 不记录任何错误.如果我尝试直接通过PHP运行代码,它按预期工作,所以问题与Apache有某种关系.

我已经尝试了"pcre.recursion_limit"设置,并发现如果我将其降低到689它不会死,而是preg_match()调用失败并带有PREG_RECURSION_LIMIT_ERROR.对于更高的pcre.recursion_limit值,Apache死了.

Apache 2.2.11 PHP 5.3.0

我也在Debian服务器上测试了这个,我没有看到错误,并且在Windows上使用不同版本的PHP和Apache,如上所述发生错误,因此它似乎与Windows相关.

以前有人看过这个吗?我真的想要某种暗示!

更新:我是因为Apache for Windows中的一个"错误" - 好吧,不是真正的错误,但似乎Apache使用小堆栈编译,并且当PHP使用它时导致PCRE中出现此错误.见http://bugs.php.net/bug.php?id=47689

php regex windows apache

6
推荐指数
1
解决办法
2421
查看次数

在Firefox中避免使用texImage2D进行CPU端转换

每当我在webgl Firefox中使用纹理(用于OSX的Firefox Developer Edition 50.0a2,要进行激励)时,在控制台中输出这些警告:

错误:WebGL:texSubImage2D:发生CPU端转换,这是非常慢的
错误:WebGL:texSubImage2D:发生的CPU像素转换,这是非常慢的
错误:WebGL:texSubImage2D:选择格式/类型导致昂贵的重新格式化:0x1908/0x1401

有什么办法可以避免吗?我已经尝试了所有允许的格式和类型的组合texImage2D,但无论我尝试什么,我都可以在CPU上进行转换.

这是一个显示我正在做的事情的最小例子:

var gl = document.querySelector('canvas').getContext('webgl');

var textureSize = 512;
var canvas = document.createElement('canvas');
canvas.width = textureSize;
canvas.height = textureSize;

var ctx = canvas.getContext('2d');
ctx.fillStyle = 'rgba(0, 1, 0, 0.0)';
ctx.fillRect(0, 0, canvas.width, canvas.height);

ctx.fillStyle = 'rgba(0, 0, 0, 0.7)';
ctx.fillRect(0, 0, 400, 400);

var texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, canvas);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
Run Code Online (Sandbox Code Playgroud)
<canvas />
Run Code Online (Sandbox Code Playgroud)

javascript firefox webgl

5
推荐指数
1
解决办法
6472
查看次数

标签 统计

apache ×1

asp.net ×1

c# ×1

encoding ×1

firefox ×1

flowtype ×1

http ×1

javascript ×1

php ×1

query-string ×1

regex ×1

webgl ×1

windows ×1