技术改变生活电影目录核对工具(php)
在这个和谐泛滥的年代,想下载一部电影是如此的不容易,于是我就养成了收藏电影的习惯,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

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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 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.

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.

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 ...

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? Pendant la programmation, les marges négatives dans CSS (négatif ...

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 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 ...
