


In diesem Artikel wird hauptsächlich die rekursive Operationsmethode für Verzeichnisse und Dateinamen in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Das Beispiel in diesem Artikel beschreibt die Methode zum Vergleichen der Ähnlichkeiten und Unterschiede zwischen zwei Ordnern in PHP. Die spezifische Analyse lautet wie folgt:
Anforderungen:
Nur die Befehlszeile kann verwendet werden, um die Unterschiede zwischen zwei Ordnern zu vergleichen, einschließlich der Dateiunterschiede.
Denken:
Obwohl es unter Linux Unterschiede gibt. . . . Verwenden wir PHP. Der Vergleich von .svn-Verzeichnissen ist unten ausgeschlossen
Idee: 🎜>1) Verwenden Sie den ersten Pfad als Standardpfad und listen Sie die Dateien oder Ordner auf, die sich im ersten Pfad, aber nicht im zweiten Pfad befinden oder unterschiedliche Dateien sind.
2) Listen Sie dann die Dateien und Ordner auf, die im zweiten Pfad, aber nicht im ersten Pfad vorhanden sind.php Compare_folder.php /home/temp/2 /home/temp/55
Der Code ist wie folgt folgt:<?php
/**
* 工具文件
* 目的在于递归比较两个文件夹
*
* 调用示例
* php compare_folder.php /home/temp/2 /home/temp/55
*
*/
//参数确定
if (count($argv) > 1 )
$dir1 = del_postfix($argv[1]);
else
$dir1 = '/';
if (count($argv) > 2 )
$dir2 = del_postfix($argv[2]);
else
$dir2 = '/';
//检查第一个路径有,后者没有或错误的方法。
process_compare($dir1, $dir2, 0);
echo "===========================================================\n";
//检查第2个路径的多余文件夹或文件
process_compare($dir2 , $dir1, 1);
echo "all OK\n";
/**
* 去除路径末尾的/,并确保是绝对路径
*
* @param unknown_type $dir
* @return unknown
*/
function del_postfix($dir)
{
if (!preg_match('#^/#', $dir)) {
throw new Exception('参数必须是绝对路径');
}
$dir = preg_replace('#/$#', '', $dir);
return $dir;
}
/**
* 公用函数,会调用一个递归方法实现比较
*
* @param string $dir1 作为标准的路径
* @param string $dir2 对比用的路径
* @param int $only_check_has 为1表示不比较文件差异,为0表示还要比较文件的md5校验和
*/
function process_compare($dir1, $dir2, $only_check_has){
compare_file_folder($dir1, $dir1, $dir2, $only_check_has);
}
/**
* 真实的函数,私有函数
*
* @param string $dir1 路径1,是标准
* @param string $base_dir1 不变的参数路径2
* @param string $base_dir2 不变的待比较的路径2
* @param int $only_check_has 为1表示不比较文件差异,为0表示还要比较文件的md5校验和
*
*/
function compare_file_folder($dir1, $base_dir1, $base_dir2, $only_check_has=0){
if (is_dir($dir1)) {
$handle = dir($dir1);
if ($dh = opendir($dir1)) {
while ($entry = $handle->read()) {
if (($entry != ".") && ($entry != "..") && ($entry != ".svn")){
$new = $dir1."/".$entry;
//echo 'compare: ' . $new . "\n";
$other = preg_replace('#^'. $base_dir1 .'#' , $base_dir2, $new);
if(is_dir($new)) {
//比较
if (!is_dir($other)) {
echo '!!not found direction: '. $other. ' (' . $new .")\n";
}
compare_file_folder($new, $base_dir1,$base_dir2, $only_check_has) ;
} else { //如果1是文件,则2也应该是文件
if (!is_file($other)) {
echo '!!not found file: '. $other. ' ('.$new .")\n";
}elseif ($only_check_has ==0 && ( md5_file($other) != md5_file($new) ) ){
echo '!!file md5 error: '. $other. ' ('.$new .")\n";
}
}
}
}
closedir($dh);
}
}
}
?>
Verwandte Empfehlungen:
So kombinieren Sie PHP-Vorlage und JS-Upload-Plug-in, um einen aktualisierungsfreien Upload zu erzielenPHP-Nummern und Bestätigungscode für den NummernbetriebSo verwenden Sie PHP, um Funktionen mithilfe von Kettenaufrufen kontinuierlich aufzurufen
Das obige ist der detaillierte Inhalt vonPHP-Methode für rekursive Operationen an Verzeichnissen und Dateinamen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver Mac
Visuelle Webentwicklungstools

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung
