我正在将网站迁移到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 ++宏,批处理文件或其他任何东西。任何人都可以提供任何帮助/提示/建议吗?他们将不胜感激!
提前致谢!
答案 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>