Table of Contents
php implements traversing directories and deleting specified content in specified files,
Home Backend Development PHP Tutorial PHP implements traversing the directory and deleting the specified content in the specified file, _PHP tutorial

PHP implements traversing the directory and deleting the specified content in the specified file, _PHP tutorial

Jul 13, 2016 am 10:09 AM
php content delete document Traverse directory

php implements traversing directories and deleting specified content in specified files,

I am sitting in a quiet dormitory now, and the winter vacation seems to have left me... What I posted today is the last study I did during the winter vacation, and I have been watching One Piece since then.

I used to write a C language program that traverses directories + copies files. It was very long and complicated. Now I can use PHP to traverse directories, and the code is much shorter. The purpose of this program is to traverse the directory, find all files with the specified file name, and delete the specified string.

Copy code The code is as follows:

//Function: Delete the specified string

in all specified files in the specified directory (including subdirectories)

$tmpfiledir = $_SERVER["DOCUMENT_ROOT"].'tmp.txt';
function del($getstr)
{
$isbak = true; //Whether to back up the original file, true means backup, false does not back up
global $tmpfiledir;
$fr = fopen($tmpfiledir,"r") or die('Failed to open temporary file');
while($row = fgets($fr))
{
If(empty($row)) break;
$row = trim($row);
$opp = fopen($row,"r") or die("Failed to open $row");
$str = fread($opp,filesize($row)) or die("Cannot read $row");
$str = str_replace($getstr,"",$str);
fclose($opp);
if($isbak){
​ copy($row,$row.'.bak') or die("Backup file failed");
}
$ref = fopen($row,"w") or die("Failed to reopen file");
fwrite($ref,$str) or die("Failed to rewrite file");
}
}

function traverse($path) {
Global $name,$tmpfiledir;
$current_dir = opendir($path); //opendir() returns a directory handle, and returns false
on failure if($current_dir == false)
Return false;
while(($file = readdir($current_dir)) !== false) { //readdir() returns an entry in the open directory handle
$sub_dir = $path . DIRECTORY_SEPARATOR . $file; //Build subdirectory path
If($file == '.' || $file == '..') {
Continue;
} else if(is_dir($sub_dir)) { //If it is a directory, perform recursion
Traverse($sub_dir);
} else { //If it is a file, compare again
$fileinfo = pathinfo($sub_dir);
If($fileinfo['basename'] == $name)
{
         $fopen = fopen($tmpfiledir,"a");
          fwrite($fopen,$sub_dir."rn");
           fclose($fopen);
}
}
}
Return true;
}

if(isset($_POST["name"]) && isset($_POST["dir"]) && isset($_POST["str"]))
{
$name = $_POST["name"];
Traverse($_POST["dir"]) or die("Failed to create temporary file, please check whether the website root directory is writable");
del($_POST["str"]);
                                                    echo "success";
​ unlink($tmpfiledir);
}
else
{
echo "

Enter relevant information

";
}
?>

Enter the target folder:
Enter the target file name:
Enter the string to be deleted:

You can see that I wrote two functions. The function traverse writes the found specified file paths in a temporary file, and the function del deletes the specified strings in these files. In fact, I also think it is useless. I can just delete it during traversal without generating any temporary files at all.

Actually, I wrote the traversal in C language at the beginning. Because C language is not easy to operate files, I used PHP to write the deleted part. So I only wrote a del function at the beginning, and later I simply used it to traverse files. I wrote it in PHP (seems much simpler than C), so I wrote another function traverse. You can just look at the traversal part. You can also compare it with the traversal code I wrote in C before (I sent the source code) to see what the difference is.

However, this version does not support wildcards, so the file name must be specified. Its function (also the reason why I wrote this) is that it can delete the one-sentence Trojans we have hung on the server in batches.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/945702.htmlTechArticlephp implements traversing the directory and deleting the specified content in the specified file. Now I am sitting in a quiet dormitory, and the winter vacation is already over Left me... What I posted today is the last study I did during the winter vacation...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

CakePHP Project Configuration CakePHP Project Configuration Sep 10, 2024 pm 05:25 PM

In this chapter, we will understand the Environment Variables, General Configuration, Database Configuration and Email Configuration in CakePHP.

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

CakePHP Date and Time CakePHP Date and Time Sep 10, 2024 pm 05:27 PM

To work with date and time in cakephp4, we are going to make use of the available FrozenTime class.

CakePHP File upload CakePHP File upload Sep 10, 2024 pm 05:27 PM

To work on file upload we are going to use the form helper. Here, is an example for file upload.

CakePHP Routing CakePHP Routing Sep 10, 2024 pm 05:25 PM

In this chapter, we are going to learn the following topics related to routing ?

Discuss CakePHP Discuss CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP is an open-source framework for PHP. It is intended to make developing, deploying and maintaining applications much easier. CakePHP is based on a MVC-like architecture that is both powerful and easy to grasp. Models, Views, and Controllers gu

CakePHP Working with Database CakePHP Working with Database Sep 10, 2024 pm 05:25 PM

Working with database in CakePHP is very easy. We will understand the CRUD (Create, Read, Update, Delete) operations in this chapter.

CakePHP Creating Validators CakePHP Creating Validators Sep 10, 2024 pm 05:26 PM

Validator can be created by adding the following two lines in the controller.

See all articles