### 前言 在项目中引用了带有通配符的nuget包之后,`restore`的行为就会变得莫名其妙起来,有的项目会自动检阅匹配最新版本并`restore`,而有的却死活在用之前版本的缓存。 ### 解决方法 推荐使用方法二。 #### 1. 手动改动版本并`restore` 1. 编辑项目`*proj`文件,把包引用的版本改为最新的具体版本。 2. `dotnet restore` 3. 再次把包版本改为`x.x.x.*` 4. `dotnet restore` #### 2. 清除nuget缓存 1. `dotnet nuget locals all --clear` 2. `dotnet restore`
### 前言 本文章并不对文章所涉及的知识点进行扫盲,如果您未接触过文章中所涉及的知识点请花点时间了解学习。 ### 涉及知识点 1. `Visual Studio Code` 2. `launch.json` 3. `tasks.json` - 阅读剩余部分 -
- 阅读剩余部分 -
### 名称定义 - 索引数组:所有键名都为数值型,注意字符串类型的数字键名会被转换为数值型。 - 连续索引数组:键名是连续性的数字。 - 关联数组:所有键名都为字符串型,注意字符串类型的数字键名会被转换为数值型。 - 混合数组:键名既有数值型也有字符串型。 ### 代码 ```php /** * 判断数组是否为索引数组 */ function is_indexed_array($arr) { if (is_array($arr)) { return count(array_filter(array_keys($arr), 'is_string')) === 0; } return false; } /** * 判断数组是否为连续的索引数组 * 以下这种索引数组为非连续索引数组 * [ * 0 => 'a', * 2 => 'b', * 3 => 'c', * 5 => 'd', * ] */ function is_continuous_indexed_array($arr) { if (is_array($arr)) { $keys = array_keys($arr); return $keys == array_keys($keys); } return false; } /** * 判断数组是否为关联数组 */ function is_assoc_array($arr) { if (is_array($arr)) { // return !is_indexed_array($arr); return count(array_filter(array_keys($arr), 'is_string')) === count($arr); } return false; } /** * 判断数组是否为混合数组 */ function is_mixed_array($arr) { if (is_array($arr)) { $count = count(array_filter(array_keys($arr), 'is_string')); return $count !== 0 && $count !== count($arr); } return false; } ``` ### 耗时测试 ```php // 对百万数组进行千次的循环判断 $arr = []; for ($i = 0; $i < 1000000; $i++) { $j = 0; $key = mt_rand(1, 100) >= 50 ? $j++ : md5(time(true)); $arr[$key] = md5(time(true) . time(true)); } $t = microtime(true); for ($i = 0; $i < 1000; $i++) { is_indexed_array($t); } echo microtime(true) - $t, "s\n"; $t = microtime(true); for ($i = 0; $i < 1000; $i++) { is_assoc_array($t); } echo microtime(true) - $t, "s\n"; $t = microtime(true); for ($i = 0; $i < 1000; $i++) { is_continuous_indexed_array($t); } echo microtime(true) - $t, "s\n"; $t = microtime(true); for ($i = 0; $i < 1000; $i++) { is_mixed_array($t); } echo microtime(true) - $t, "s\n"; // 输出 // 0.0019919872283936s // 0.0020020008087158s // 0.0021991729736328s // 0.0019669532775879s ``` ### 测试结果 对百万数组进行千次的循环判断均为毫秒级
### 起因 最近写了一个酸酸乳订阅,然后分享给朋友的时候,朋友就反映说路由器和电脑都能订阅,只有手机不能订阅,然后就开始了奇妙的抓虫之旅。 ### 分析 由于反映说只有手机不能订阅(事实上我刚写完经测试手机电脑均OK),所以我一开始就把源头锁定在了手机端APP上,但是依然非常不解,因为我是测试过能订阅的!更气的是,安卓客户端不提示任何错误! - 阅读剩余部分 -
代码非原创,而是网上找来然后做了少许修改。 ### 效果图 ![WX20180706-141222@2x.png](https://storage.liesauer.net/2018/07/2928728990.png) [效果预览](http://www.liesauer.net/404 "效果预览") ### 代码 也可在上面的[预览页面](http://www.liesauer.net/404 "效果预览")直接右键查看源代码 ```html Oops :( 你访问的页面未找到。 我们不会收集任何错误信息,然后也不会为你重新启动。 如果你想了解更多信息,则可以稍后: 性感错误,在线反馈 ```
你访问的页面未找到。 我们不会收集任何错误信息,然后也不会为你重新启动。 如果你想了解更多信息,则可以稍后: 性感错误,在线反馈
域名出售
服务器推荐