0
我幫助管理一個有大量html文件的非營利網站,大概有1000個左右。破壞的鏈接是一件麻煩事,我想知道是否可以用PHP創建一個程序來替換所有這些文件中的文本字符串(即URL)。跨網站替換文字?
它會在這麼多文件中創建大量服務器嗎? 如果有10個人同時使用該程序來查找和替換所有1,000個文件,那麼情況如何?
我幫助管理一個有大量html文件的非營利網站,大概有1000個左右。破壞的鏈接是一件麻煩事,我想知道是否可以用PHP創建一個程序來替換所有這些文件中的文本字符串(即URL)。跨網站替換文字?
它會在這麼多文件中創建大量服務器嗎? 如果有10個人同時使用該程序來查找和替換所有1,000個文件,那麼情況如何?
這當然有可能!
關鍵是要能夠讀取PHP中的文件並處理其內容。閱讀是容易的,寫作也是如此。編輯是需要您注意的一點。
$yourFilename = "file.html";
$yourFileData = file_get_contents($yourFilename);
if ($yourFileData !== false) {
// File has been read successfully
// $yourFileData has the contents of it. This is where the magic needs to happen!
}
// Write everything back
$file = fopen($yourFilename,"w");
fwrite($file,$yourFileData);
fclose($file);
這段代碼有效地讀取一個文件,並寫入一個文件。位於中間的位置是您進行搜索和替換的位置。我強烈建議爲此使用正則表達式。我相信,preg_replace將會非常方便。請閱讀它,並隨時編輯您的問題並提供更多詳細信息 - 我非常樂意爲您編寫正則表達式。
遍歷目錄也很簡單。你想使用opendir()打開一個目錄,並使用readdir()循環,確保返回值不是。,..或false,並且是一個文件。
對於您的其他問題重複:多個用戶,如果我是你,我會避免。這創造了競爭條件。
如果您的虛擬主機安裝了PHP,那麼可以做到這一點Apache – samayo
什麼操作系統?如果您使用的是unix或mac,則可以使用sed輕鬆完成此操作:http://rushi.wordpress.com/2008/08/05/find-replace-across-multiple-files-in-linux/ – Jeff