0

我在一个站点中有一堆html 文件,这些文件创建于 2000 年,并且一直维护到今天。我们最近开始努力用它们的 html 实体替换非法字符。逐页寻找版权符号和商标标签似乎是一件苦差事。你们有谁知道一个应用程序会获取一堆 html 文件并告诉我需要在哪里用 html 实体替换非法字符?

4

3 回答 3

0

任何好的文本编辑器都会为您搜索文件内容并返回匹配列表。

我用EditPlus做到这一点。有几个编辑器,如Notepad++TextPad等,可以轻松帮助您完成此操作。

您不必打开文件。您只需指定存储文件的路径和掩码 (*.html) 以及搜索“©”的内容,编辑器将返回匹配列表,当您双击时,它会打开文件并带来向上匹配线。

于 2009-11-04T15:47:40.863 回答
0

您可以编写一个 PHP 脚本(如果可以的话;如果没有,我很乐意提供帮助),但我假设您已经转换了一些“特殊字符”,所以这确实使任务变得更加困难(尽管我仍然认为这是可能的)...

于 2009-11-04T15:52:49.683 回答
0

我还有一个网站需要定期在字符集之间来回转换大量文件名。虽然文本编辑器可以做到这一点,但在 php 中使用 2 个步骤的便携式解决方案是可取的。首先,将文件名添加到数组中,然后进行搜索和替换。函数中的一段额外代码从数组中排除了某些文件类型。

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); 
}                                                                                            
于 2011-12-04T17:12:48.247 回答