tml文件即超文本标记语言文件文档,是扩展名、后缀名为html的文件。超文本标记语言的结构包括头部分(Head)、和主体部分(Body),其中头部(head)提供关于网页的信息,主体(body)部分提供网页的具体内容。html文件能够被多种网页浏览器读取,传递。我们可以使用电脑上自带的记事本进行编辑htm文件。那么html文件删除如何恢复?
通常情况下当您从电脑存储设备中删除html文件时,该html文件会保存在回收站中。 可以根据需要通过单击还原选项将其还原。 但是不好运的情况下,如果您清空回收站或文件未经过回收站、或使用永久删除键Shift + Delete将文件删除怎么恢复呢?我们可以通过使用数据恢复软件来恢复。
html文件删除恢复步骤如下:
1、首先到官网下载并安装好云骑士数据恢复软件(注意:软件不能安装在丢失盘中),打开云骑士数据恢复软件,根据需要选择恢复功能,这里选择场景模式下的误删除文件。
2、选择好以后选择需要恢复数据的分区,如果是外接设备则可以将它插入电脑中,或者通过读卡器插入电脑,点击开始扫描。
3、扫描结束以后,你会发现有很多数据,这时我们可以通过文件类型进行查找,这里勾选其他文件类型,然后找到了需要的html格式文件。
因为文件丢失后有可能会因各种原因受损,所以遵循先预览再恢复原则,通过预览模式判断文件是否正常再进行恢复。对于无法预览或者不支持预览的是无法判断数据是好的还是坏的,只能恢复出来才能进行查看的。
4、接着在需要恢复的html文件前面进行勾选,选择好以后点击立即恢复按钮。
5、弹出设置文件路径窗口,将文件存储在安全区域中(如果存储盘不够内存,可以外接其他设备进行存储),点击确定按钮。
6、耐心等待文件导出完成,点击查看即可查看恢复出来的html文件了。
知识普及:
导致html文件丢失常见几种原因:
采用来源于Internet的各种各样没经验证的第三方应用程序也许会使您的html文件遭遇风险。
偶尔在下载那些应用程序时,某些恶意病毒也许会进入系统并破坏html文件结构,亦或它们也许会删除桌面上的所有html文件,因此致使大量数据丢失。
在重新分区或调整硬盘大小时,那些html文件也许会遗失。在重新分区时,一个重大的错误也会删除存储了所必需文件的分区,例如DOC、PPT、XLSX和HTML。
总结:以上就是html文件删除恢复教程了,如果在软件使用过程中有不懂的问题,可以咨询专业的在线客服人员为您解答~
本文来自 yqssjhf.com>> 创作不易,转载请注明出处。
常扒别人网站文章的坑们;我是指那种批量式采集的压根不看内容的;少不了都会用到删除html标签的函数;这里介绍3种不同用途上的方法;
$str='<div><p>这里是p标签</p><img src="" alt="这里是img标签"><a href="">这里是a标签</a><br></div>';
1:删除全部或者保留指定html标签php自带的函数strip_tags即可满足要求,使用方法:strip_tags(string,allow);string:需要处理的字符串;allow:需要保留的指定标签,可以写多个;
echo strip_tags($str,'<p><a>');//输出:<p>这里是p标签</p><a href="">这里是a标签</a>
此函数的优点是简单粗暴;但是缺点也很明显;如果有一大堆标签;而我只是想删除指定的某一个;那要写很多需要保留的标签;所以有了第二个方法;
2:删除指定的html标签使用方法:strip_html_tags($tags,$str);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;
function strip_html_tags($tags,$str){
$html=array();
foreach ($tags as $tag) {
$html[]="/(<(?:\/".$tag."|".$tag.")[^>]*>)/i";
}
$data=preg_replace($html, '', $str);
return $data;
}
echo strip_html_tags(array('p','img'),$str);
//输出:<div>这里是p标签<a href="">这里是a标签</a><br></div>;
3:删除标签和标签的内容使用方法:strip_html_tags($tags,$str);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;
function strip_html_tags($tags,$str){
$html=array();
foreach ($tags as $tag) {
$html[]='/<'.$tag.'.*?>[\s|\S]*?<\/'.$tag.'>/';
$html[]='/<'.$tag.'.*?>/';
}
$data=preg_replace($html,'',$str);
return $data;
}
echo strip_html_tags(array('a','img'),$str);
//输出<div><p>这里是p标签</p><br></div>
很多网站文章里面会带上网站名和链接;这个函数就是专治这种;别拿这个函数采集本站啊;不然保证不打死你;4:终极函数,删除指定标签;删除或者保留标签内的内容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要删除的标签(数组格式)$str:需要处理的字符串;$ontent:是否删除标签内的内容 0保留内容 1不保留内容
日常编程中,我们经常会遇到数组去重的问题。今天,我们就来聊聊如何用JavaScript来优雅地解决这个问题。
给定一个包含重复元素的数组,我们希望创建一个新的数组,其中只包含原始数组中的唯一值。例如,如果我们有一个数组 [1, 2, 3, 2, 4, 1, 5],期望的输出应该是 [1, 2, 3, 4, 5]。
我们可以使用最简单的方法——嵌套循环来解决这个问题。遍历每一个元素,检查它是否已经存在于新数组中,如果不存在则添加进去。
function removeDuplicates(arr) {
const result = [];
for (let i = 0; i < arr.length; i++) {
let isDuplicate = false;
for (let j = 0; j < result.length; j++) {
if (arr[i] === result[j]) {
isDuplicate = true;
break;
}
}
if (!isDuplicate) {
result.push(arr[i]);
}
}
return result;
}
const myArray = [1, 2, 3, 2, 4, 1, 5];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
这个方法虽然直观,但当数组很大时,效率会变得非常低,因为时间复杂度是 O(n²)。
我们还可以使用 indexOf 方法配合 filter 方法来去重,这样看起来会简洁不少。
function removeDuplicates(arr) {
return arr.filter((item, pos) => arr.indexOf(item) === pos);
}
const myArray = [1, 2, 3, 2, 4, 1, 5];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
在这个方法中,我们使用 filter 方法创建了一个新数组,只有满足条件的元素才会被包含进来。条件是当前元素的索引应该等于该元素在数组中第一次出现的位置。这种方法代码看起来更简洁,但是它的时间复杂度依然是 O(n²),因为 indexOf 需要遍历整个数组来查找元素的位置。
使用对象特性优化
在处理大数组去重时,我们可以利用对象的特性来提升性能。通过在对象中记录数组元素,可以有效减少重复元素的检查次数。
function removeDuplicates(arr) {
const seen = {};
return arr.filter((item) => {
if (seen[item]) {
return false;
} else {
seen[item] = true;
return true;
}
});
}
const myArray = [1, 2, 3, 2, 4, 1, 5];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
这个方法创建了一个空对象 seen,然后通过 filter 方法遍历数组。每个元素都会检查是否已存在于 seen 对象中。如果存在,则跳过;否则,加入 seen 对象并保留在新数组中。这种方法对于大数组更高效,但存在一些缺点:
如果你的数组只包含基本类型,并且不需要区分类型,这可以放心使用这个方法。
结合对象和数组的线性搜索
我们可以结合对象和数组的线性搜索方法来解决上述问题。
function removeDuplicates(arr) {
const prims = { boolean: {}, number: {}, string: {} };
const objs = [];
return arr.filter((item) => {
const type = typeof item;
if (type in prims) {
if (prims[type].hasOwnProperty(item)) {
return false;
} else {
prims[type][item] = true;
return true;
}
} else {
if (objs.indexOf(item) >= 0) {
return false;
} else {
objs.push(item);
return true;
}
}
});
}
const myArray = [1, 2, 3, 2, 4, 1, 5, { foo: 1 }, { foo: 2 }];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5, { foo: 1 }, { foo: 2 }]
主要优点
存在的问题
最终方案:编写深度比较函数
编写深度比较函数 isDeepDataStructureEquality,用来比较两个对象的内容是否相同。
function isDeepDataStructureEquality(a, b) {
let isEqual = Object.is(a, b);
if (!isEqual) {
if (Array.isArray(a) && Array.isArray(b)) {
isEqual = (a.length === b.length) && a.every(
(item, idx) => isDeepDataStructureEquality(item, b[idx])
);
} else if (
a && b
&& (typeof a === 'object')
&& (typeof b === 'object')
) {
const aKeys = Object.keys(a);
const bKeys = Object.keys(b);
isEqual = (aKeys.length === bKeys.length) && aKeys.every(
(key, idx) => isDeepDataStructureEquality(a[key], b[key])
);
}
}
return isEqual;
}
function removeDuplicates(arr) {
const primitives = { boolean: {}, number: {}, string: {} };
const objs = [];
return arr.filter(item => {
const type = typeof item;
if (type in primitives) {
if (primitives[type].hasOwnProperty(item)) {
return false;
} else {
primitives[type][item] = true;
return true;
}
} else {
if (objs.some(obj => isDeepDataStructureEquality(obj, item))) {
return false;
} else {
objs.push(item);
return true;
}
}
});
}
另一种去重方法是先排序数组,然后去除连续重复的元素。
function removeDuplicates(arr) {
return arr.sort().filter((item, pos, ary) => !pos || item !== ary[pos - 1]);
}
const myArray = [1, 2, 3, 2, 4, 1, 5];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5]
这个方法首先使用 sort 方法对数组进行排序,然后使用 filter 方法去除连续的重复元素。虽然对已排序的数组很有效,但无法处理对象数组。
对于包含对象的数组,我们可以利用 Set 数据结构来高效去重。因为 Set 只存储唯一值,我们可以将数组转换为 Set,然后再转换回数组。
function removeDuplicates(arr) {
return [...new Set(arr)];
}
const myArray = [1, 2, 3, 2, 4, 1, 5, { foo: 1 }, { foo: 2 }];
const uniqueArray = removeDuplicates(myArray);
console.log(uniqueArray); // 输出: [1, 2, 3, 4, 5, { foo: 1 }, { foo: 2 }]
这个方法通过 new Set(arr) 创建一个新的集合,然后使用扩展运算符 ... 将集合展开为数组,去重过程简单且高效。
在实际开发中,选择合适的数组去重方法非常重要。如果数组主要包含基本类型,使用 Set 是一种简洁高效的选择。如果数组中包含复杂结构的对象,可以结合深度比较函数来确保去重的准确性。
无论你选择哪种方法,都要根据具体的应用场景和数据特点来决定。希望这些方法能帮助你在实际开发中更优雅地解决数组去重问题。如果你有其他更好的方法或建议,欢迎在评论区分享哦!
如果你喜欢这篇文章,请点赞并关注,更多前端技巧和小妙招等着你哦!
*请认真填写需求信息,我们会在24小时内与您取得联系。