Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
tml文件即超文本標記語言文件文檔,是擴展名、后綴名為html的文件。超文本標記語言的結構包括頭部分(Head)、和主體部分(Body),其中頭部(head)提供關于網頁的信息,主體(body)部分提供網頁的具體內容。html文件能夠被多種網頁瀏覽器讀取,傳遞。我們可以使用電腦上自帶的記事本進行編輯htm文件。那么html文件刪除如何恢復?
通常情況下當您從電腦存儲設備中刪除html文件時,該html文件會保存在回收站中。 可以根據(jù)需要通過單擊還原選項將其還原。 但是不好運的情況下,如果您清空回收站或文件未經過回收站、或使用永久刪除鍵Shift + Delete將文件刪除怎么恢復呢?我們可以通過使用數(shù)據(jù)恢復軟件來恢復。
html文件刪除恢復步驟如下:
1、首先到官網下載并安裝好云騎士數(shù)據(jù)恢復軟件(注意:軟件不能安裝在丟失盤中),打開云騎士數(shù)據(jù)恢復軟件,根據(jù)需要選擇恢復功能,這里選擇場景模式下的誤刪除文件。
2、選擇好以后選擇需要恢復數(shù)據(jù)的分區(qū),如果是外接設備則可以將它插入電腦中,或者通過讀卡器插入電腦,點擊開始掃描。
3、掃描結束以后,你會發(fā)現(xiàn)有很多數(shù)據(jù),這時我們可以通過文件類型進行查找,這里勾選其他文件類型,然后找到了需要的html格式文件。
因為文件丟失后有可能會因各種原因受損,所以遵循先預覽再恢復原則,通過預覽模式判斷文件是否正常再進行恢復。對于無法預覽或者不支持預覽的是無法判斷數(shù)據(jù)是好的還是壞的,只能恢復出來才能進行查看的。
4、接著在需要恢復的html文件前面進行勾選,選擇好以后點擊立即恢復按鈕。
5、彈出設置文件路徑窗口,將文件存儲在安全區(qū)域中(如果存儲盤不夠內存,可以外接其他設備進行存儲),點擊確定按鈕。
6、耐心等待文件導出完成,點擊查看即可查看恢復出來的html文件了。
知識普及:
導致html文件丟失常見幾種原因:
采用來源于Internet的各種各樣沒經驗證的第三方應用程序也許會使您的html文件遭遇風險。
偶爾在下載那些應用程序時,某些惡意病毒也許會進入系統(tǒng)并破壞html文件結構,亦或它們也許會刪除桌面上的所有html文件,因此致使大量數(shù)據(jù)丟失。
在重新分區(qū)或調整硬盤大小時,那些html文件也許會遺失。在重新分區(qū)時,一個重大的錯誤也會刪除存儲了所必需文件的分區(qū),例如DOC、PPT、XLSX和HTML。
總結:以上就是html文件刪除恢復教程了,如果在軟件使用過程中有不懂的問題,可以咨詢專業(yè)的在線客服人員為您解答~
本文來自 yqssjhf.com>> 創(chuàng)作不易,轉載請注明出處。
常扒別人網站文章的坑們;我是指那種批量式采集的壓根不看內容的;少不了都會用到刪除html標簽的函數(shù);這里介紹3種不同用途上的方法;
$str='<div><p>這里是p標簽</p><img src="" alt="這里是img標簽"><a href="">這里是a標簽</a><br></div>';
1:刪除全部或者保留指定html標簽php自帶的函數(shù)strip_tags即可滿足要求,使用方法:strip_tags(string,allow);string:需要處理的字符串;allow:需要保留的指定標簽,可以寫多個;
echo strip_tags($str,'<p><a>');//輸出:<p>這里是p標簽</p><a href="">這里是a標簽</a>
此函數(shù)的優(yōu)點是簡單粗暴;但是缺點也很明顯;如果有一大堆標簽;而我只是想刪除指定的某一個;那要寫很多需要保留的標簽;所以有了第二個方法;
2:刪除指定的html標簽使用方法:strip_html_tags($tags,$str);$tags:需要刪除的標簽(數(shù)組格式)$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:需要刪除的標簽(數(shù)組格式)$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>
很多網站文章里面會帶上網站名和鏈接;這個函數(shù)就是專治這種;別拿這個函數(shù)采集本站啊;不然保證不打死你;4:終極函數(shù),刪除指定標簽;刪除或者保留標簽內的內容;使用方法:strip_html_tags($tags,$str,$content);$tags:需要刪除的標簽(數(shù)組格式)$str:需要處理的字符串;$ontent:是否刪除標簽內的內容 0保留內容 1不保留內容
日常編程中,我們經常會遇到數(shù)組去重的問題。今天,我們就來聊聊如何用JavaScript來優(yōu)雅地解決這個問題。
給定一個包含重復元素的數(shù)組,我們希望創(chuàng)建一個新的數(shù)組,其中只包含原始數(shù)組中的唯一值。例如,如果我們有一個數(shù)組 [1, 2, 3, 2, 4, 1, 5],期望的輸出應該是 [1, 2, 3, 4, 5]。
我們可以使用最簡單的方法——嵌套循環(huán)來解決這個問題。遍歷每一個元素,檢查它是否已經存在于新數(shù)組中,如果不存在則添加進去。
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]
這個方法雖然直觀,但當數(shù)組很大時,效率會變得非常低,因為時間復雜度是 O(n2)。
我們還可以使用 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 方法創(chuàng)建了一個新數(shù)組,只有滿足條件的元素才會被包含進來。條件是當前元素的索引應該等于該元素在數(shù)組中第一次出現(xiàn)的位置。這種方法代碼看起來更簡潔,但是它的時間復雜度依然是 O(n2),因為 indexOf 需要遍歷整個數(shù)組來查找元素的位置。
使用對象特性優(yōu)化
在處理大數(shù)組去重時,我們可以利用對象的特性來提升性能。通過在對象中記錄數(shù)組元素,可以有效減少重復元素的檢查次數(shù)。
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]
這個方法創(chuàng)建了一個空對象 seen,然后通過 filter 方法遍歷數(shù)組。每個元素都會檢查是否已存在于 seen 對象中。如果存在,則跳過;否則,加入 seen 對象并保留在新數(shù)組中。這種方法對于大數(shù)組更高效,但存在一些缺點:
如果你的數(shù)組只包含基本類型,并且不需要區(qū)分類型,這可以放心使用這個方法。
結合對象和數(shù)組的線性搜索
我們可以結合對象和數(shù)組的線性搜索方法來解決上述問題。
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 }]
主要優(yōu)點
存在的問題
最終方案:編寫深度比較函數(shù)
編寫深度比較函數(shù) 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;
}
}
});
}
另一種去重方法是先排序數(shù)組,然后去除連續(xù)重復的元素。
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 方法對數(shù)組進行排序,然后使用 filter 方法去除連續(xù)的重復元素。雖然對已排序的數(shù)組很有效,但無法處理對象數(shù)組。
對于包含對象的數(shù)組,我們可以利用 Set 數(shù)據(jù)結構來高效去重。因為 Set 只存儲唯一值,我們可以將數(shù)組轉換為 Set,然后再轉換回數(shù)組。
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) 創(chuàng)建一個新的集合,然后使用擴展運算符 ... 將集合展開為數(shù)組,去重過程簡單且高效。
在實際開發(fā)中,選擇合適的數(shù)組去重方法非常重要。如果數(shù)組主要包含基本類型,使用 Set 是一種簡潔高效的選擇。如果數(shù)組中包含復雜結構的對象,可以結合深度比較函數(shù)來確保去重的準確性。
無論你選擇哪種方法,都要根據(jù)具體的應用場景和數(shù)據(jù)特點來決定。希望這些方法能幫助你在實際開發(fā)中更優(yōu)雅地解決數(shù)組去重問題。如果你有其他更好的方法或建議,歡迎在評論區(qū)分享哦!
如果你喜歡這篇文章,請點贊并關注,更多前端技巧和小妙招等著你哦!
*請認真填寫需求信息,我們會在24小時內與您取得聯(lián)系。