【WPS】【WORDWORD】【JavaScript】实现微软WORD自动更正的效果
1.效果展示
2.核心代码展示
function readTableData(filePath) {let tableData = {};let doc = Application.Documents.Open(filePath); // 打开文档let table = doc.Tables(1); // 获取第一个表格// 遍历表格,存储编号和描述的映射for (let i = 1; i <= table.Rows.Count; i++) {let number = table.Cell(i, 1).Range.Text.trim(); // 获取编号let description = table.Cell(i, 2).Range.Text.trim(); // 获取描述tableData[number] = description; // 存储映射}doc.Close(false); // 关闭文档,不保存更改return tableData;
}function replaceNumbersWithDescriptions1(filePath, tableData) {let doc = Application.Documents.Open(filePath); // 打开文档let content = doc.Content.Text; // 获取文档内容// 遍历表格数据,替换所有匹配的编号for (let number in tableData) {let cleanNumber = number.replace(/[^\u4e00-\u9fa50-9a-zA-Z]/g, ""); // 清理编号let description = tableData[number];content = content.replace(new RegExp(cleanNumber, "g"), description); // 替换编号为描述}doc.Content.Text = content; // 写回文档//doc.Save(); // 保存文档// doc.Close(); // 关闭文档
}function replaceNumbersWithDescriptions2(tableData) {let doc = Application.ActiveDocument; // let content = doc.Content.Text; // 获取文档内容// 遍历表格数据,替换所有匹配的编号for (let number in tableData) {let cleanNumber = number.replace(/[^\u4e00-\u9fa50-9a-zA-Z]/g, ""); // 清理编号let description = tableData[number];content = content.replace(new RegExp(cleanNumber, "g"), description); // 替换编号为描述}doc.Content.Text = content; // 写回文档//doc.Save(); // 保存文档// doc.Close(); // 关闭文档
}
function main() {let tableData = readTableData("C:\\Users\\Administrator\\Desktop\\新建文件夹\\1.docx"); // 读取1.docx//版本一:无需打开2.docm//replaceNumbersWithDescriptions1("C:\\Users\\Administrator\\Desktop\\新建文件夹\\2.docm", tableData); // 替换2.docm中的编号//版本一:需打开2.docmreplaceNumbersWithDescriptions2(tableData); // 替换2.docm中的编号
}
3.核心代码讲解
以下是对代码的逐行解释:
1. function readTableData(filePath) {
-
定义一个名为
readTableData
的函数,该函数接受一个参数filePath
,表示要读取的文档路径。
2. let tableData = {};
-
创建一个空对象
tableData
,用于存储从表格中读取的编号和描述的映射关系。
3. let doc = Application.Documents.Open(filePath);
-
使用
Application.Documents.Open
方法打开指定路径的文档,并将返回的文档对象赋值给变量doc
。
4. let table = doc.Tables(1);
-
获取文档中的第一个表格,并将其赋值给变量
table
。
5. for (let i = 1; i <= table.Rows.Count; i++) {
-
开始一个循环,从表格的第一行遍历到最后一行。
6. let number = table.Cell(i, 1).Range.Text.trim();
-
获取当前行第一列(即编号列)的文本内容,并使用
trim()
方法去除首尾空白字符,然后将其赋值给变量number
。
7. let description = table.Cell(i, 2).Range.Text.trim();
-
获取当前行第二列(即描述列)的文本内容,并使用
trim()
方法去除首尾空白字符,然后将其赋值给变量description
。
8. tableData[number] = description;
-
将编号和描述的映射关系存储到
tableData
对象中,其中number
作为键,description
作为值。
9. }
-
结束循环。
10. doc.Close(false);
-
关闭文档,
false
参数表示不保存对文档的更改。
11. return tableData;
-
返回
tableData
对象,其中包含了从表格中读取的编号和描述的映射关系。
12. function replaceNumbersWithDescriptions1(filePath, tableData) {
-
定义一个名为
replaceNumbersWithDescriptions1
的函数,该函数接受两个参数:filePath
表示要处理的文档路径,tableData
是包含编号和描述映射关系的对象。
13. let doc = Application.Documents.Open(filePath);
-
打开指定路径的文档,并将返回的文档对象赋值给变量
doc
。
14. let content = doc.Content.Text;
-
获取文档的全部文本内容,并将其赋值给变量
content
。
15. for (let number in tableData) {
-
开始一个循环,遍历
tableData
对象中的所有键(即编号)。
16. let cleanNumber = number.replace(/[^\u4e00-\u9fa50-9a-zA-Z]/g, "");
-
使用正则表达式去除编号中的非中文字符、数字和字母,并将清理后的编号赋值给变量
cleanNumber
。
17. let description = tableData[number];
-
获取当前编号对应的描述,并将其赋值给变量
description
。
18. content = content.replace(new RegExp(cleanNumber, "g"), description);
-
使用正则表达式在文档内容中查找所有匹配的编号,并将其替换为对应的描述。
19. }
-
结束循环。
20. doc.Content.Text = content;
-
将替换后的文本内容写回文档。
21. //doc.Save();
-
注释掉的代码,表示保存文档。如果需要保存文档,可以取消注释。
22. // doc.Close();
-
注释掉的代码,表示关闭文档。如果需要关闭文档,可以取消注释。
23. function replaceNumbersWithDescriptions2(tableData) {
-
定义一个名为
replaceNumbersWithDescriptions2
的函数,该函数接受一个参数tableData
,表示包含编号和描述映射关系的对象。
24. let doc = Application.ActiveDocument;
-
获取当前活动的文档对象,并将其赋值给变量
doc
。
25. let content = doc.Content.Text;
-
获取当前文档的全部文本内容,并将其赋值给变量
content
。
26. for (let number in tableData) {
-
开始一个循环,遍历
tableData
对象中的所有键(即编号)。
27. let cleanNumber = number.replace(/[^\u4e00-\u9fa50-9a-zA-Z]/g, "");
-
使用正则表达式去除编号中的非中文字符、数字和字母,并将清理后的编号赋值给变量
cleanNumber
。
28. let description = tableData[number];
-
获取当前编号对应的描述,并将其赋值给变量
description
。
29. content = content.replace(new RegExp(cleanNumber, "g"), description);
-
使用正则表达式在文档内容中查找所有匹配的编号,并将其替换为对应的描述。
30. }
-
结束循环。
31. doc.Content.Text = content;
-
将替换后的文本内容写回文档。
32. //doc.Save();
-
注释掉的代码,表示保存文档。如果需要保存文档,可以取消注释。
33. // doc.Close();
-
注释掉的代码,表示关闭文档。如果需要关闭文档,可以取消注释。
34. function main() {
-
定义一个名为
main
的函数,作为程序的入口点。
35. let tableData = readTableData("C:\\Users\\Administrator\\Desktop\\新建文件夹\\1.docx");
-
调用
readTableData
函数,读取指定路径的文档,并将返回的编号和描述映射关系赋值给tableData
。
36. //replaceNumbersWithDescriptions1(tableData);
-
注释掉的代码,表示调用
replaceNumbersWithDescriptions1
函数,替换指定路径文档中的编号为描述。如果需要使用此版本,可以取消注释。
37. replaceNumbersWithDescriptions2(tableData);
-
调用
replaceNumbersWithDescriptions2
函数,替换当前活动文档中的编号为描述。
38. }
-
结束
main
函数。
4.总结:
-
readTableData
函数用于从指定文档中读取表格数据,并返回编号和描述的映射关系。 -
replaceNumbersWithDescriptions1
函数用于替换指定文档中的编号为描述。 -
replaceNumbersWithDescriptions2
函数用于替换当前活动文档中的编号为描述。 -
main
函数是程序的入口,调用上述函数来完成整个替换过程。
相关文章:
【WPS】【WORDWORD】【JavaScript】实现微软WORD自动更正的效果
1.效果展示 2.核心代码展示 function readTableData(filePath) {let tableData {};let doc Application.Documents.Open(filePath); // 打开文档let table doc.Tables(1); // 获取第一个表格// 遍历表格,存储编号和描述的映射for (let i 1; i < table.Rows.…...
Excel数据叠加生成新DataFrame:操作指南与案例
目录 一、准备工作 二、读取Excel文件 三、数据叠加 四、处理重复数据(可选) 五、保存新DataFrame到Excel文件 六、案例演示 七、注意事项 八、总结 在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步的分析和处…...
springBoot项目使用Elasticsearch教程
目录 一、引言(一)使用背景(二)版本库区别 二、引入依赖(一)springboot集成的es依赖(建议)(二)es提供的客户端库 三、配置(以yaml文件为例&#x…...
摄像头模块在狩猎相机中的应用
摄像头模块是狩猎相机的核心组件,在狩猎相机中发挥着关键作用,以下是其主要应用: 图像与视频拍摄 高清成像:高像素的摄像头模块可确保狩猎相机拍摄出清晰的图像和视频,能够捕捉到动物的毛发纹理、行为细节及周围环境的…...
栈溢出原理
文章目录 前言一、基本示例二、分析栈1. 先不考虑gets函数的栈情况2. 分析gets函数的栈区情况 三、利用栈1. 构造字符串2. 利用漏洞 前言 栈溢出指的是程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。…...
38.【3】CTFHUB web sql 报错注入
进入靶场 按照提示输入1 显示查询正确 既然是报错注入,先判断整形还是字符型注入 先输入1 and 11 再输入1 and 12 都显示查询正确,可知此为字符串型注入,不是数字型注入 然后就不会了 求助AI和其他wp 由以上2张搜索结果知updatexml是适用…...
SSE部署后无法连接问题解决
1. 问题现象 通过域名访问 https://api-uat.sfxs.com/sse/subscribe?tokenBearer%20eyJUxMiJ9.eyJhY2NvdW50IjoiYWRtaWZ0NvZGUiOiIwMDEiLCJyb2xidXNlcm5hbWUiOiLotoXnuqfnrqHnkIblkZgifQ.tlz9N61Y4 一直无法正常连接 2. 问题解决 nginx.conf进行配置 server {location /ss…...
sparkRDD教程之基本命令
作者:nchu可乐百香果 指导者:nchu-YoungDragon 1.前期准备 (1)从迅雷网盘上面下载这个项目,并且把scala,maven和java环境配置好 网盘链接: 分享文件:SparkRDD.zip 链接…...
【JavaScript】比较运算符的运用、定义函数、if(){}...esle{} 语句
比较运算符 !><> < 自定义函数: function 函数名(){ } 判断语句: if(判断){ }else if(判断){ 。。。。。。 }else{ } 代码示例: <!DOCTYPE html> <html> <head><meta charset&quo…...
ShardingSphere—SQL 路由与执行解析原理
在分布式数据库中,SQL 路由、解析及执行是核心机制,用于高效处理 SQL 请求并将其分发到合适的数据节点。在 ShardingSphere 中,这一过程分为三个主要阶段:SQL 路由、SQL 解析 和 SQL 执行,通过灵活的策略和优化机制实现…...
机器学习——什么是代价函数?
1.代价函数的定义 首先,提到代价函数是估计值和实际值的差,这应该是指预测值和真实值之间的差异,用来衡量模型的好坏。 在一元线性模型中,模型是直线,有两个参数,可能是斜率和截距。 通过调整这两个参数,让代价函数最小,这应该是说我们要找到最佳的斜率和截距,使得预测…...
k8s集群换IP
k8s集群搭建及节点加入时需要确定IP,但安装完成后设备移动到新环境可能出现网段更换或者IP被占用的情况,导致无法ping通节点或者无法打开原IP的服务。 解决方法为保持原有IP不更换,给网卡再加一个IP 这边使用两个ubuntu虚拟机模拟服务器和w…...
RPC 源码解析~Apache Dubbo
解析 RPC(远程过程调用)的源码可以帮助你深入理解其工作原理和实现细节。为了更好地进行源码解析,我们选择一个流行的 RPC 框架——Apache Dubbo 作为示例。Dubbo 是一个高性能、轻量级的开源 Java RPC 框架,广泛应用于企业级应用…...
【认识油管头部频道】ep5 “5-Minute Crafts”——DIY 和生活技巧
5-Minute Crafts 是一个非常受欢迎的 DIY 和生活技巧频道,它的火爆有多方面的原因: 1. 简单实用的内容 视频主要以解决日常生活中遇到的小问题为主,提供简单易学的技巧,吸引了想快速获取实用知识的观众。 2. 短视频形式 每个视…...
vue3 uniapp封装一个瀑布流组件
新增组件m-waterfall 这样就可以在页面直接使用 不用在引入了 <template><view class"m-waterfall"><view id"m-left-column" class"m-column"><slot name"left" :leftList"leftList"></slot&…...
基于Java的语音陪聊软件——支持聊天私聊-礼物系统-直播系统-缘分匹配-游戏陪玩
丰富的经验、成熟的技术,打造适合当下市场发展的语音交友软件源码。Java 语言凭借其独特的优势,为这款语音陪聊软件的稳健运行和持续发展奠定了坚实基础。它不仅融合了聊天私聊、礼物系统和直播系统等实用且有趣的功能,还创新性地引入了缘分匹…...
山石防火墙命令行配置示例
现网1台山石SG6000防火墙,配置都可以通过GUI实现。 但有一些配置在命令行下配置效率更高,比如在1个已有策略中添加1个host或端口。 下面的双引号可以不加 1 创建服务 1.1 单个端口 service "tcp-901"tcp dst-port 901 1.2 端口范围 servi…...
WordPress内容保护策略:如何反击并利用被盗内容
当你的网站开始获得大量流量时,内容盗窃成为不可避免的问题。除了通过高级的保护措施防止内容被盗,你还可以采取一些策略来反击内容盗窃,并从中获益。 1. 识别并封锁恶意IP地址 当你发现某些IP地址频繁访问并抓取你的网站内容时,…...
UDP报文格式
UDP是传输层的一个重要协议,他的特性有面向数据报、无连接、不可靠传输、全双工。 下面是UDP报文格式: 1,报头 UDP的报头长度位8个字节,包含源端口、目的端口、长度和校验和,其中每个属性均为两个字节。报头格式为二…...
【工具类】获取日出日落时间的Java工具类
博主介绍:✌全网粉丝22W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
ES7【2016】、ES8【2017】新增特性(六)
ES7【2016】新增特性 幂指数操作符 在ES7【2016】中新增了幂指数操作,幂指数操作符是**。它用于指数计算 基本语法:baseValue ** exponent 参数说明:baseValue是基数,exponent是指数。 let base 2; let exponent 4; let resul…...
SparX:一种用于层次视觉Mamba和变换器网络的稀疏跨层连接机制
摘要 https://arxiv.org/pdf/2409.09649 由于动态状态空间模型(SSMs)能够以线性时间计算复杂度捕获长距离依赖关系,Mamba在自然语言处理(NLP)任务中表现出了显著的性能。这激发了基于Mamba的视觉模型的快速发展&#…...
Spring Boot 中实现 WebSocket 的方式
在 Spring Boot 中实现 WebSocket 的方式主要有以下几种,每种方式适用于不同的场景和需求: 1. 基于 Spring WebSocket 的实现 特点: 原生支持 WebSocket,基于 Spring 提供的 API。使用 WebSocketConfigurer 和 WebSocketHandler 配置端点和消息处理逻辑。可以通过拦截器访…...
时序数据库TDengine 3.3.5.0 发布:高并发支持与增量备份功能引领新升级
近日,TDengine 3.3.5.0 版本正式发布,带来了多项重磅更新与优化,从功能拓展到性能提升,再到用户体验进行了全面改进。本次更新围绕用户核心需求展开,涵盖了开发工具、数据管理、安全性、可视化等多个层面,为…...
Elasticsearch:Jira 连接器教程第一部分
作者:来自 Elastic Gustavo Llermaly 将我们的 Jira 内容索引到 Elaasticsearch 中以创建统一的数据源并使用文档级别安全性进行搜索。 在本文中,我们将回顾 Elastic Jira 原生连接器的一个用例。我们将使用一个模拟项目,其中一家银行正在开发…...
HarmonyOS NEXT开发进阶(六):HarmonyOS NEXT实现嵌套 H5 及双向通信
文章目录 一、前言二、鸿蒙应用加载Web页面2.1 加载网络地址页面2.2 加载本地H5页面 三、实现Web组件 H5 层与鸿蒙应用层进行相互通讯3.1 鸿蒙应用向 H5 页面发送数据3.2 H5页面向鸿蒙应用发送数据 四、拓展阅读 一、前言 随着HarmonyOS NEXT的快速发展,越来越多的…...
Myeclipse最新版本 C1 2019.4.0
Myeclipse C1 2019.4.0下载地址:链接: https://pan.baidu.com/s/1MbOMLewvAdemoQ4FNfL9pQ 提取码: tmf6 1.1、什么是集成开发环境? ★集成开发环境讲究-站式开发,使用这个工具即可。有提示功能,有自动纠错功能。 ★集成开发环境可以让软件开…...
深度学习中PyTorch张量的重塑操作
深度学习中PyTorch张量的重塑操作 张量操作类型 在我们深入具体的张量操作之前,让我们先快速浏览一下主要的操作类别,这些类别包括我们将要介绍的操作。我们有以下高级类别的操作: 重塑操作元素级操作归约操作访问操作 有很多单独的操作&…...
lua下标是可以从0开始
故事背景,策划搞了一个功能配置表,我看居然是0开始的,功能也正常。于是测试了下,还真的可以。网上看了资料确实可以,但是也有需要注意的问题 local test {[0] 0} for k,v in pairs(test)doprint(k,v) endhttps://bl…...
从AI原理到模型演进及代码实践 的学习二
参考:全面解析:从AI原理到模型演进及代码实践-CSDN博客 训练过程 Transformer仅一个Encoder模块就可以工作,可以处理信息抽取、识别、主体识别等任务,比如 BERT(Bidirectional Encoder Representations from Transfor…...
计算机组成原理(计算机系统3)--实验二:MIPS64乘法实现实验
一、实验目标: 实际运用WinMIPS64进行试验,以期更了解WinMIPS64的操作; 更加深入地了解MIPS程序的语法; 深入地了解在计算机中乘法的实现以及加法与乘法之间的关系。 二、实验内容 按照实验报告指导,完成相关操作…...
WPS excel使用宏编辑器合并 Sheet工作表
使用excel自带的工具合并Sheet表,我们会发现需要开通WPS会员才能使用合并功能; 那么WPS excel如何使用宏编辑器进行合并 Sheet表呢? 1、首先我们要看excel后缀是 .xlsx 还是 .xls ;如果是.xlsx 那么 我们需要修改为 .xls 注…...
ASP.NET Core - 配置系统之配置添加
ASP.NET Core - 配置系统之配置添加 2. 配置添加 2. 配置添加 配置系统可以读取到配置文件中的信息,那必然有某个地方可以将配置文件添加到配置系统中。之前的文章中讲到 ASP.NET Core 入口文件中,builder(WebApplicationBuilder 对象) 中有一个 Config…...
【Redis】Redis 集群中节点之间如何通信?
【Redis】Redis 集群中节点之间如何通信? 一背景概述二通信协议Gossip 协议 三通信机制Gossip 消息类型(1).Ping消息(2).Pong消息(3).Meet消息(4).Fail消息 消息传播模式(1).反熵(Anti-entropy)(2).谣言传播(Rumor mongering) 四通信过程通信端口通信频率故障检测与…...
iOS - 内存对齐
1. 基本的内存对齐 // 对象内存对齐 struct objc_object {// isa 指针 8 字节对齐isa_t isa __attribute__((aligned(8))); };// 定义对齐常量 #define WORD_MASK 7UL // 字对齐掩码 #define WORD_SHIFT 3UL // 字对齐位移 #define WORD_SIZE 8 …...
RabbitMQ(四)
SpringBoot整合RabbitMQ SpringBoot整合1、生产者工程①创建module②配置POM③YAML④主启动类⑤测试程序 2、消费者工程①创建module②配置POM③YAML文件内配置: ④主启动类⑤监听器 3、RabbitListener注解属性对比①bindings属性②queues属性 SpringBoot整合 1、生…...
unity学习17:unity里的旋转学习,欧拉角,四元数等
目录 1 三维空间里的旋转与欧拉角,四元数 1.1 欧拉角比较符合直观 1.2 四元数 1.3 下面是欧拉角和四元数的一些参考文章 2 关于旋转的这些知识点 2.1 使用euler欧拉角旋转 2.2 使用quaternion四元数,w,x,y,z 2.3 使用quaternion四元数,类 Vector3.zero 这种…...
当PHP遇上区块链:一场奇妙的技术之旅
PHP 与区块链的邂逅 在技术的广袤宇宙中,区块链技术如同一颗耀眼的新星,以其去中心化、不可篡改、透明等特性,掀起了一场席卷全球的变革浪潮。众多开发者怀揣着对新技术的热忱与探索精神,纷纷投身于区块链开发的领域,试…...
Portainer.io安装并配置Docker远程访问及CA证书
Portainer.io安装并配置Docker远程访问及CA证书 文章目录 Portainer.io安装并配置Docker远程访问及CA证书一.安装 Portainer.io2.启动容器 二.docker API远程访问并配置CA安全认证1.配置安全(密钥)访问2.补全CA证书信息3.生成server-key.pem4.创建服务端签名请求证书文件5.创建…...
从漏洞管理到暴露管理:网络安全的新方向
在网络安全的快速发展中,传统的漏洞管理仍然是防御体系的基石。然而,面对日益复杂的威胁和不断增长的漏洞数量,单靠漏洞优先级评分(如VPR)已经无法满足现代安全需求。暴露管理这一全新的思维模式正在引领企业从被动应对…...
GraphRAG如何使用ollama提供的llm model 和Embedding model服务构建本地知识库
使用GraphRAG踩坑无数 在GraphRAG的使用过程中将需要踩的坑都踩了一遍(不得不吐槽下,官方代码有很多遗留问题,他们自己也承认工作重心在算法的优化而不是各种模型和框架的兼容性适配性上),经过了大量的查阅各种资料以…...
HTTP/HTTPS ⑤-CA证书 || 中间人攻击 || SSL/TLS
这里是Themberfue ✨上节课我们聊到了对称加密和非对称加密,实际上,单纯地非对称加密并不能保证数据不被窃取,我们还需要一个更加重要的东西——证书 中间人攻击 通过非对称加密生成私钥priKey和公钥pubKey用来加密对称加密生成的密钥&…...
MYSQL学习笔记(二):基本的SELECT语句使用(基本、条件、聚合函数查询)
前言: 学习和使用数据库可以说是程序员必须具备能力,这里将更新关于MYSQL的使用讲解,大概应该会更新30篇,涵盖入门、进阶、高级(一些原理分析);这一篇是讲解SELECT语句使用,包括基本、条件、聚合函数查询,…...
云原生周刊:Prometheus 3.0 正式发布
开源项目推荐 Achilles-SDK Achilles-SDK 是一个专为构建 Kubernetes 控制器而设计的开源开发工具包。它简化了控制器的开发流程,提供了强大的 API 和高效的抽象层,使开发者能够专注于业务逻辑的实现,而无需处理底层复杂性。Achilles-SDK 支…...
维护数据完整性(三)
立即检查的(IMMEDIATE)或者延迟检查的(DEFERRED) 使用 SET CONSTRAINTS 语句 SET CONSTRAINTS语句可以用来在事务内部改变约束的检查时机。以下是如何使用该语句的示例: SET CONSTRAINTS constraint_name DEFERRED;…...
前后端分离开发心得
前后端分离开发是一种软件开发模式,将前端和后端的开发分离开来,使得前端和后端可以独立开发、测试和部署。具体来说: • 前端:负责展示数据和用户交互,使用 HTML、CSS、JavaScript 等技术实现用户界面和交互逻辑&…...
Redisson发布订阅学习
介绍 Redisson 的消息订阅功能遵循 Redis 的发布/订阅模式,该模式包括以下几个核心概念: 发布者(Publisher):发送消息到特定频道的客户端。在 Redis 中,这通过 PUBLISH 命令实现。 订阅者(Sub…...
【Golang/nacos】nacos配置的增删查改,以及服务注册的golang实例及分析
前言 本文分析的实例来源于nacos在github上的开源仓库 nacos配置的增删查改 先具体来看一段代码,我将逐步分析每一段的作用 package mainimport ("fmt""time""github.com/nacos-group/nacos-sdk-go/clients""github.com/naco…...
[手机Linux] 七,NextCloud优化设置
安装完成后在个人设置里发现很多警告,一一消除。 只能一条一条解决了。 关于您的设置有一些错误。 1,PHP 内存限制低于建议值 512 MB。 设置php配置文件: /usr/local/php/etc/php.ini 把里面的: memory_limit 128M 根据你自…...
浅谈云计算15 | 存储可靠性技术(RAID)
存储可靠性技术 一、存储可靠性需求1.1 数据完整性1.2 数据可用性1.3 故障容错性 二、传统RAID技术剖析2.1 RAID 02.2 RAID 12.3 RAID 52.4 RAID 62.5 RAID 10 三、RAID 2.0技术3.1 RAID 2.0技术原理3.1.1 两层虚拟化管理模式3.1.2 数据分布与重构 3.2 RAID 2.0技术优势3.2.1 自…...