Maison php教程 php手册 技术改变生活电影目录核对工具(php)

技术改变生活电影目录核对工具(php)

Jun 13, 2016 am 10:45 AM
php 下载 Non harmonieux exister 工具 技术 改变 Oui Vie 电影 de 目录 ce

 

 

 

在这个和谐泛滥的年代,想下载一部电影是如此的不容易,于是我就养成了收藏电影的习惯,2个1T的硬盘收藏了近600部片子,于是很多同事朋友知道后,纷纷向我借硬盘拷电影,于是问题也就来了……

  因为没有硬盘锁,所以我无法控制他们对硬盘是否“动手脚”,比如手误造成的剪切或者误删。虽然我有专门一个记录电影目录的txt文件,如下

  

 

但要一个一个核对过去,不仅浪费时间,而且会造成疲劳导致漏看。既然如此,何不用自己的专业技能来实现我的需求呢,说干就干吧。

 

  首先我要把电影目录从txt文件里读取出来并存为php数组

$fp = fopen('D:\movieList.txt','r');

for($i=0; $i

    $arr[] = trim(substr(fgets($fp),4));

}

fclose($fp);

  其中562是txt文件行数,因为一部电影我就存放一行。因为存放目录里头4个字符是影片清晰度类型,有DVD、BD和MKV三个,所以我用substr(fgets($fp),4)去掉头4个字符,然后用trim去掉首尾的空格,这样最终存放到数组里的片名就不包含任何其他字符了。

  然后要做的就是读取移动硬盘下的电影目录,这里我找的是一段网上读取文件夹下文件名的function

function myreaddir($dir){

    $handle = opendir($dir);

    $i = 0;

    while($file=readdir($handle)){

        if(($file != ". ")&&($file != ".. ")){

            $list[$i] = $file;

            $i = $i+1;

        }

    }

    closedir($handle);

    return $list;

}

$movie = myreaddir("I:\movies");

  这个方法有一个缺陷,就是不能读取子文件下的文件,不过对于我来说已经足够了,大家有兴趣可以在这基础上扩展下去。

  然后就是核对的过程

foreach($arr as $v){

    $f = false;

    foreach($movie as $vv){

        if(strstr($vv,$v)!=""){

            $f = true;

        }

    }

    if(!$f){

        echo $v."
";

    }

}

  核对的核心方法就是判断字符串A里是否包含字符串B,也就是电影文件名里是否包含电影目录里的片名,如果不包含,则输出。

  测试后正确率基本有80%,但有一个bug,比如我的电影目录里有部电影叫“电锯”,但是我文件夹里没有“电锯1024*768.rmvb”,而有部叫“电锯惊魂1024*768.rmvb”的,这样程序是判断通过的。

  唯一的解决办法就是在记录电影目录的时候,就把完整的文件名记录下来,不要只记录“电锯”,而应该记录“电锯1024*768”,或者干脆把文件格式也记录下来,这样在核对的时候,可以直接进行字符串比较。

  如果有更好的解决办法,欢迎告诉我。

 

原文地址:http://www.cnblogs.com/hooray/archive/2011/10/30/2228990.html

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Expliquez l'expression de correspondance (PHP 8) et comment elle diffère du commutateur. Apr 06, 2025 am 12:03 AM

Dans PHP8, les expressions de correspondance sont une nouvelle structure de contrôle qui renvoie différents résultats en fonction de la valeur de l'expression. 1) Il est similaire à une instruction Switch, mais renvoie une valeur au lieu d'un bloc d'instruction d'exécution. 2) L'expression de correspondance est strictement comparée (===), ce qui améliore la sécurité. 3) Il évite les éventuelles omissions de rupture dans les instructions de commutation et améliore la simplicité et la lisibilité du code.

La production de pages H5 nécessite-t-elle une maintenance continue? La production de pages H5 nécessite-t-elle une maintenance continue? Apr 05, 2025 pm 11:27 PM

La page H5 doit être maintenue en continu, en raison de facteurs tels que les vulnérabilités du code, la compatibilité des navigateurs, l'optimisation des performances, les mises à jour de sécurité et les améliorations de l'expérience utilisateur. Des méthodes de maintenance efficaces comprennent l'établissement d'un système de test complet, à l'aide d'outils de contrôle de version, de surveiller régulièrement les performances de la page, de collecter les commentaires des utilisateurs et de formuler des plans de maintenance.

Décrivez l'objectif et l'utilisation de l'opérateur ... (SPLAT) dans les arguments de fonction PHP et le déballage du tableau. Décrivez l'objectif et l'utilisation de l'opérateur ... (SPLAT) dans les arguments de fonction PHP et le déballage du tableau. Apr 06, 2025 am 12:07 AM

L'opérateur ... (SPLAT) dans PHP est utilisé pour déballer les paramètres et les tableaux de fonction, améliorant la simplicité et l'efficacité du code. 1) Démontage du paramètre de fonction: passez l'élément de tableau en tant que paramètre à la fonction. 2) Démontage du tableau: déballer un tableau dans un autre tableau ou en tant que paramètre de fonction.

Comment réaliser un effet d'écart sur la disposition de la carte et des coupons avec fond de gradient? Comment réaliser un effet d'écart sur la disposition de la carte et des coupons avec fond de gradient? Apr 05, 2025 am 07:48 AM

Réalisez l'effet d'écart de la disposition des coupons de carte. Lors de la conception de la disposition des coupons de carte, vous rencontrez souvent la nécessité d'ajouter des lacunes sur les coupons de carte, surtout lorsque l'arrière-plan est le gradient ...

Qu'est-ce que la contrefaçon de demande inter-sites (CSRF) et comment implémentez-vous la protection CSRF dans PHP? Qu'est-ce que la contrefaçon de demande inter-sites (CSRF) et comment implémentez-vous la protection CSRF dans PHP? Apr 07, 2025 am 12:02 AM

En PHP, vous pouvez prévenir efficacement les attaques du CSRF en utilisant des jetons imprévisibles. Les méthodes spécifiques comprennent: 1. Générer et intégrer les jetons CSRF dans la forme; 2. Vérifiez la validité du jeton lors du traitement de la demande.

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Comment résoudre ce problème? Apr 05, 2025 pm 10:18 PM

Pourquoi les marges négatives ne prennent-elles pas effet dans certains cas? Pendant la programmation, les marges négatives dans CSS (négatif ...

Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Pourquoi les zones réduites pourpre dans la disposition Flex sont-elles considérées à tort «espace de débordement»? Apr 05, 2025 pm 05:51 PM

Questions sur les zones de slash violet dans les dispositions flexibles Lorsque vous utilisez des dispositions flexibles, vous pouvez rencontrer des phénomènes déroutants, comme dans les outils du développeur (D ...

Comment obtenir des données d'application et de visionneuse en temps réel sur la page de travail 58.com? Comment obtenir des données d'application et de visionneuse en temps réel sur la page de travail 58.com? Apr 05, 2025 am 08:06 AM

Comment obtenir des données dynamiques de la page de travail 58.com tout en rampant? Lorsque vous rampez une page de travail de 58.com en utilisant des outils de chenilles, vous pouvez rencontrer cela ...

See all articles