循环访问html文件,获取文件名并插入每个文件

时间:2014-10-17 21:09:29

标签: html wordpress batch-processing

我正在将网站迁移到Wordpress ...旧网站使用定制的发布系统,其中PHP模板调用每个帖子的单独静态HTML文件。有很多帖子需要迁移(超过1000个)。

我正在使用一个插件,可以导入HTML文件并将每个文件转换为Wordpress帖子,但重要的是每个帖子的原始日期设置正确。方便的是,该插件允许我从每个文件中的HTML标记中选择每个帖子的日期。

我的问题是日期都在文件名中,而不是文件本身。这些文件都是由yy-mm-dd命名的,但没有破折号,所以它们看起来像:
"130726.htm"(2013年7月26日)
"121025.htm"(2012年10月25日)

所以基本上我需要一种方法来循环遍历这些文件的目录,并为每一个 - 获取文件名,添加斜杠,然后在<body>之后将其插入到文件中,如下所示:
<p class="origDate">13/07/26</p>

我不确定最好的方法...... Python脚本,Notepad ++宏,批处理文件或其他任何东西。任何人都可以提供任何帮助/提示/建议吗?他们将不胜感激!

提前致谢!

1 个答案:

答案 0 :(得分:0)

我在理解问题和第一个脚本时犯了一个错误。

此脚本扫描日期目录中的文件(我假设日期目录中只包含所需格式的html文件),然后打开文件并在正文下方插入段落。

日期文件夹的示例内容:

121214.html 121298.html 121299.html

PHP脚本(脚本与日期文件夹放在同一目录中):

<?php
$dir = "dates";
$a = scandir($dir);

$a = array_diff($a, array(".", ".."));



foreach ($a as $value)
{


   $string = file_get_contents("dates/".$value);





   $newstring = substr($value,0,-5);
   $newstring1 = substr($newstring,0,2);
   $newstring2 = substr($newstring,2,2);
   $newstring3 = substr($newstring,4,2);
   $para =  '<p class="origDate">' .$newstring1 . "/" . $newstring2 . "/" . $newstring3 . '</p>' . "<br>";
   $pattern = '/<body[\w\s="-:;]*>/';
   $replacement = '${0}'.$para;
   $newpara = preg_replace($pattern, $replacement, $string);



   $filename ="dates/".$value;
   $file = fopen($filename, "r+");

   fwrite($file, $newpara);
   fclose($file);

}
?>

我在这里使用.html,使用.htm,修改这一行:

$newstring = substr($value,0,-5);

$newstring = substr($value,0,-4);

示例HTML之前:

<!DOCTYPE html>
<html>

<body marginwidth=0 style="margin-left: 30px;" onclick="myfunction()">

<ul><li>Coffee</li><li>Tea</li></ul>

</body>
</html>

示例HTML:

<!DOCTYPE html>
<html>
<body marginwidth=0 style="margin-left: 30px;" onclick="myfunction()"><p class="origDate">12/12/14</p><br>

<ul><li>Coffee</li><li>Tea</li></ul>



</body>
</html>