Php 我需要在目录中的所有文件中自动替换部分代码
我正在尝试将一个大型网站转换为PHP。所有文件的头/页眉部分和页脚部分几乎相似 我正试图将所有这些页眉部分和页脚部分合并到一个单独的文件中 所以我需要更换我所有的Php 我需要在目录中的所有文件中自动替换部分代码,php,html,Php,Html,我正在尝试将一个大型网站转换为PHP。所有文件的头/页眉部分和页脚部分几乎相似 我正试图将所有这些页眉部分和页脚部分合并到一个单独的文件中 所以我需要更换我所有的 标题部分(跨越1045至1535行的任意位置)带有 及 页脚部分(跨越80到140行的任意位置)带有 从目录中的所有文件 这是我需要做的一个粗略的数字。。请看下面的代码 /*一些脚本*/ 在上面给出的代码中,我需要从上到下替换所有内容 (直到结束标记) 与 另外,我需要替换页脚下的所有内容 与 请帮我用我的字符
及
从目录中的所有文件
这是我需要做的一个粗略的数字。。请看下面的代码
/*一些脚本*/
在上面给出的代码中,我需要从上到下替换所有内容
(直到结束标记)
与
另外,我需要替换页脚下的所有内容
与
请帮我用我的字符串替换文件的那一部分
提前感谢这是一个快速的粗略修复。。。没有测试它,但希望它能工作!
快抬头!如果您计划在
中添加
,则在
类的
结束标记之后添加此
。
使用
preg_-match('/(.*?(.*?)/s',$file,$newfile)更改第一个preg_-match
代码>
$file=file\u get\u contents('replace\u head.html');
preg_匹配('/(.*)(.*)/s',$file,$newfile);
preg_match('/(.*)(.*)/s',$file,$newfile2);
如果($newfile==TRUE){
$file1=str_replace([$newfile[0]],[''],$file);
如果($newfile2==TRUE){
$file2=str_replace([$newfile2[0]],[''],$file1);
//标题(“内容类型:纯/文本”);
//如果要下载当前文件,请取消对此的注释
标题('content-type:application/json');
//如果您想将其视为html,请对此进行注释
echo(2美元);
}
}
这是一个快速粗略的解决方案。。。没有测试它,但希望它能工作!
快抬头!如果您计划在
中添加
,则在
类的
结束标记之后添加此
。
使用
preg_-match('/(.*?(.*?)/s',$file,$newfile)更改第一个preg_-match
代码>
$file=file\u get\u contents('replace\u head.html');
preg_匹配('/(.*)(.*)/s',$file,$newfile);
preg_match('/(.*)(.*)/s',$file,$newfile2);
如果($newfile==TRUE){
$file1=str_replace([$newfile[0]],[''],$file);
如果($newfile2==TRUE){
$file2=str_replace([$newfile2[0]],[''],$file1);
//标题(“内容类型:纯/文本”);
//如果要下载当前文件,请取消对此的注释
标题('content-type:application/json');
//如果您想将其视为html,请对此进行注释
echo(2美元);
}
}
首先,请注意正则表达式通常不应与DOM一起使用。但是,由于我们讨论的是文件内的大规模替换,我认为在这种情况下这是可以接受的(您不想丢失格式,使用DOM大规模删除节点也会很尴尬)
现在,考虑到您在另一篇关于menubar2
div结构的评论中所说的,这应该可以做到
编辑:现在在menubar2
:
// Compute the amount of divs within `menubar2` div
libxml_use_internal_errors(true);
$doc = new \DOMDocument();
$doc->loadHTML($html);
$menubar2_inner_div_count = (new \DOMXPath($doc))
->query('//div[@class="menubar2"]//div')
->length;
// Header
$html = preg_replace(
'/^.*?<div class="menubar2">' . str_repeat('.*?<\/div>', $menubar2_inner_div_count + 1) . '/s',
'<!-- Header -->' . PHP_EOL . '<?php include_once "include/header.php" ?>',
$html
);
// Footer
$html = preg_replace(
'/<footer class="site-footer">.*?<\/html>/s',
'<?php include_once "include/footer.php" ?>',
$html
);
// (Optional) Remove now useless indentation (supposes your indent is 8 spaces,
// otherwise replace accordingly)
$html = preg_replace('/^ {8}/m', '', $html);
//计算'menubar2'div中div的数量
libxml\u使用\u内部错误(true);
$doc=new\DOMDocument();
$doc->loadHTML($html);
$menubar2\u内部\u分区\u计数=(新建\DOMXPath($doc))
->查询('//div[@class=“menubar2”]//div')
->长度;
//标题
$html=preg\u replace(
“/^.*”.str_repeat(“.*”,$menubar2_inner_div_count+1)。“/s”,
“.PHP_EOL.”,
$html
);
//页脚
$html=preg\u replace(
“/.*?/s”,
'',
$html
);
//(可选)删除现在无用的缩进(假设缩进为8个空格,
//否则,请相应更换)
$html=preg_replace('/^{8}/m',''$html);
演示:首先,请注意正则表达式通常不应与DOM一起使用。但是,由于我们讨论的是文件内的大规模替换,我认为在这种情况下这是可以接受的(您不想丢失格式,使用DOM大规模删除节点也会很尴尬)
现在,考虑到您在另一篇关于menubar2
div结构的评论中所说的,这应该可以做到
编辑:现在在menubar2
:
// Compute the amount of divs within `menubar2` div
libxml_use_internal_errors(true);
$doc = new \DOMDocument();
$doc->loadHTML($html);
$menubar2_inner_div_count = (new \DOMXPath($doc))
->query('//div[@class="menubar2"]//div')
->length;
// Header
$html = preg_replace(
'/^.*?<div class="menubar2">' . str_repeat('.*?<\/div>', $menubar2_inner_div_count + 1) . '/s',
'<!-- Header -->' . PHP_EOL . '<?php include_once "include/header.php" ?>',
$html
);
// Footer
$html = preg_replace(
'/<footer class="site-footer">.*?<\/html>/s',
'<?php include_once "include/footer.php" ?>',
$html
);
// (Optional) Remove now useless indentation (supposes your indent is 8 spaces,
// otherwise replace accordingly)
$html = preg_replace('/^ {8}/m', '', $html);
//计算'menubar2'div中div的数量
libxml\u使用\u内部错误(true);
$doc=new\DOMDocument();
$doc->loadHTML($html);
$menubar2\u内部\u分区\u计数=(新建\DOMXPath($doc))
->查询('//div[@class=“menubar2”]//div')
->长度;
//标题
$html=preg\u replace(
“/^.*”.str_repeat(“.*”,$menubar2_inner_div_count+1)。“/s”,
“.PHP_EOL.”,
$html
);
//页脚
$html=preg\u replace(
“/.*?/s”,
'',
$html
);
//(可选)删除现在无用的缩进(假设缩进为8个空格,
//否则,请相应更换)
$html=preg_replace('/^{8}/m',''$html);
演示:所有文件中的页眉/页脚部分是否完全相同?在任何情况下,您都应该能够通过使用具有该功能的IDE/编辑器替换大量正则表达式来实现这一点。不过,你的问题与PHP没有特别的关系,除非你想用PHP脚本来解决,这也是可能的。不,所有文件的页眉和页脚都不完全相同。。这是困扰我的问题之一..是的。。我需要用PHP来做。。我要列出并选择文件夹中的所有文件名,然后解压缩