У меня есть связка html-файлов на сайте, которые были созданы в 2000 году и поддерживались по сей день. Недавно мы начали попытки заменить незаконных символов своими html-объектами. Переход страницы на страницу, где хранятся символы авторского права и товарные знаки, кажется довольно сложной задачей. Кто-нибудь из вас знает о приложении, которое возьмет кучу html-файлов и скажет мне, где мне нужно заменить незаконных символов объектами html?Лучший способ найти нелегальных символов в связке веб-страниц ISO-889-1?
ответ
Вы можете написать PHP-скрипт (если можете, а если нет, я был бы рад помочь), но я предполагаю, что вы уже преобразовали некоторые «специальные символы», так что это делает задачу немного сложнее (хотя я все еще думаю, что это возможно) ...
Любой хороший текстовый редактор выполнит поиск содержимого файла и вернет список совпадений.
Я делаю это с EditPlus. Есть несколько редакторов, таких как Notepad++, TextPad и т. Д., Которые легко помогут вам в этом.
Нет необходимости открывать файлы. Вы просто указываете путь, в котором хранятся файлы, а также Mask (* .html) и содержимое для поиска «©», и редактор возвращается со списком совпадений, а при двойном щелчке открывается файл и приносит вверх по соответствующей строке.
Это правда, но я хочу, чтобы это сделать, не открывая более 200 файлов. Спасибо, что ответили. – wwilkins
@wwilkins: answer отредактировано –
У меня также есть веб-сайт, который должен регулярно конвертировать большое количество имен файлов взад и вперед между наборами символов. Хотя текстовый редактор может это сделать, предпочтительным является переносное решение, использующее 2 шага в php. Сначала добавьте имена файлов в массив, затем выполните поиск и замените. Дополнительная часть кода в функции исключает определенные типы файлов из массива.
Function listdir($start_dir='.') {
$nonFilesArray=array('index.php','index.html','help.html'); //unallowed files & subfolders
$filesArray = array() ; // $filesArray holds new records and $full[$j] holds names
if (is_dir($start_dir)) {
$fh = opendir($start_dir);
while (($tmpFile = readdir($fh)) !== false) { // get each filename without its path
if (strcmp($tmpFile, '.')==0 || strcmp($tmpFile, '..')==0) continue; // skip . & ..
$filepath = $start_dir . '/' . $tmpFile; // name the relative path/to/file
if (is_dir($filepath)) // if path/to/file is a folder, recurse into it
$filesArray = array_merge($filesArray, listdir($filepath));
else // add $filepath to the end of the array
$test=1 ; foreach ($nonFilesArray as $nonfile) {
if ($tmpFile == $nonfile) { $test=0 ; break ; } }
if (is_dir($filepath)) { $test=0 ; }
if ($test==1 && pathinfo($tmpFile, PATHINFO_EXTENSION)=='html') {
$filepath = substr_replace($filepath, '', 0, 17) ; // strip initial part of $filepath
$filesArray[] = $filepath ; }
}
closedir($fh);
} else { $filesArray = false; } # no such folder
return $filesArray ;
}
$filesArray = listdir($targetdir); // call the function for this directory
$numNewFiles = count($filesArray) ; // get number of records
for ($i=0; $i<$numNewFiles; $i++) { // read the filenames and replace unwanted characters
$tmplnk = $linkpath .$filesArray[$i] ;
$outname = basename($filesArray[$i],".html") ; $outname = str_replace('-', ' ', $outname);
}
** ИЗМЕНИТЬ **: Исправлено что-то непонятное;) – Franz
Спасибо, что ответили; Да, я мог бы написать программу для решения этой проблемы, но у меня просто есть ощущение, что у кого-то еще есть. Одна мысль заключалась в том, что я должен просто отправить все файлы в утилиту w3.org validation и уловить все ошибки кодирования, но если решение уже существует, даже это означает, что слишком много кода. – wwilkins