PHP文件操作 – 替换某行,插入某行,删除某行,获取行号
PHP文件操作 – 替换某行,插入某行,删除某行,获取行号
<?php
replaceTarget("test.txt", "aaaaaaaaaaaaaaaaa", "AAAAA");
#查找内容行数后 替换此行内容
function replaceTarget($filePath, $replaceCont, $target){
$result = null;
$fileCont = file_get_contents($filePath);
$targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标
if ($targetIndex !== false) {
#找到target的前一个换行符
$preChLineIndex = strrpos(substr($fileCont, 0, $targetIndex + 1), "\n");
#找到target的后一个换行符
$AfterChLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;
if ($preChLineIndex !== false && $AfterChLineIndex !== false) {
#删掉指定行,插入新内容
$result = substr($fileCont, 0, $preChLineIndex + 1) . $replaceCont . "\n" . substr($fileCont, $AfterChLineIndex + 1);
file_put_contents($filePath, $result);
//$fp = fopen($filePath, "w+");
//fwrite($fp, $result);
//fclose($fp);
}
}
}
#在需要查找的内容后 新起一行插入内容
function insertAfterTarget($filePath, $insertCont, $target)
{
$result = null;
$fileCont = file_get_contents($filePath);
$targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标
if ($targetIndex !== false) {
#找到target的后一个换行符
$chLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;
if ($chLineIndex !== false) {
#插入需要插入的内容
$result = substr($fileCont, 0, $chLineIndex + 1) . $insertCont . "\n" . substr($fileCont, $chLineIndex + 1);
file_put_contents($filePath, $result);
//$fp = fopen($filePath, "w+");
//fwrite($fp, $result);
//fclose($fp);
}
}
}
#删除内容所在的某一行
function delTargetLine($filePath, $target)
{
$result = null;
$fileCont = file_get_contents($filePath);
$targetIndex = strpos($fileCont, $target); #查找目标字符串的坐标
if ($targetIndex !== false) {
#找到target的前一个换行符
$preChLineIndex = strrpos(substr($fileCont, 0, $targetIndex + 1), "\n");
#找到target的后一个换行符
$AfterChLineIndex = strpos(substr($fileCont, $targetIndex), "\n") + $targetIndex;
if ($preChLineIndex !== false && $AfterChLineIndex !== false) {
#重新写入删掉指定行后的内容
$result = substr($fileCont, 0, $preChLineIndex + 1) . substr($fileCont, $AfterChLineIndex + 1);
file_put_contents($filePath, $result);
//$fp = fopen($filePath, "w+");
//fwrite($fp, $result);
//fclose($fp);
}
}
}
#获取某段内容的行号
/**
* @param $filePath
* @param $target 待查找字段
* @param bool $first 是否再匹配到第一个字段后退出
* @return array
*/
function getLineNum($filePath, $target, $first = false)
{
$fp = fopen($filePath, "r");
$lineNumArr = array();
$lineNum = 0;
while (!feof($fp)) {
$lineNum++;
$lineCont = fgets($fp);
if (strstr($lineCont, $target)) {
if($first) {
return $lineNum;
} else {
$lineNumArr[] = $lineNum;
}
}
}
return $lineNumArr;
}
全能资源库丨本站资源除特殊声明外,均来自于网络收集整理仅供学习研究,如需商业使用请获得作者商业授权,如果侵犯了您的合法权益,请联系我们的投诉邮箱:qinglikf@163.com,我们将在24小时内删除!如有其它疑问请联系在线客服(微信公众号:轻狸团队 丨菜单栏人工客服)特别注意:访问本站即同意本站《免责声明&版权声明》,本站原创内容未经授权禁止转载!
全能资源库 » PHP文件操作 – 替换某行,插入某行,删除某行,获取行号
全能资源库 » PHP文件操作 – 替换某行,插入某行,删除某行,获取行号
