


Technology changes life - movie directory verification tool (php)_PHP tutorial
In this era of overflowing harmony, it is not easy to download a movie, so I developed the habit of collecting movies. Two 1T hard drives have a collection of nearly 600 movies. After knowing this, many colleagues and friends started asking for help. I borrowed the hard drive to copy the movie, so the problem came...
Because there is no hard drive lock, I can't control whether they "tamper with" the hard drive, such as cutting or deleting by mistake. Although I have a special txt file that records the movie directory, as follows
But checking them one by one not only wastes time, but also causes fatigue and leads to missed readings. In this case, why not use my professional skills to realize my needs and just do it.
First, I need to read the movie directory from the txt file and save it as a php array
$fp = fopen('D:movieList.txt','r');
for($i=0; $i<562; $i++){
$arr[] = trim(substr(fgets($fp),4));
}
fclose($fp);
Among them, 562 is the number of lines in the txt file, because I only store one line for each movie. Because the first 4 characters in the storage directory are the video definition types, including DVD, BD and MKV, I use substr(fgets($fp),4) to remove the first 4 characters, and then use trim to remove the leading and trailing spaces, like this The film title finally stored in the array does not contain any other characters.
The next thing to do is to read the movie directory under the mobile hard disk. What I am looking for here is a function that reads the file name under the folder online
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");
This method has a flaw, that is, it cannot read files under sub-files, but it is enough for me. If you are interested, you can expand on this basis.
Then comes the verification process
foreach($arr as $v){
$f = false;
foreach($movie as $vv){
If(strstr($vv,$v)!=""){
$f = true;
}
}
If(!$f){
echo $v."
";
}
}
The core method of verification is to determine whether string A contains string B, that is, whether the movie file name contains the title in the movie directory. If it does not, output it.
After testing, the accuracy rate is basically 80%, but there is a bug. For example, there is a movie called "Chainsaw" in my movie directory, but there is no "Chainsaw 1024*768.rmvb" in my folder, and there is a movie called " "Chainsaw 1024*768.rmvb", the program will pass.
The only solution is to record the complete file name when recording the movie directory. Don't just record "Chainsaw", but record "Chainsaw 1024*768", or simply record the file format, so that During verification, string comparison can be performed directly.
If there is a better solution, please let me know.
Original address: http://www.cnblogs.com/hooray/archive/2011/10/30/2228990.html

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The main differences between Laravel and Yii are design concepts, functional characteristics and usage scenarios. 1.Laravel focuses on the simplicity and pleasure of development, and provides rich functions such as EloquentORM and Artisan tools, suitable for rapid development and beginners. 2.Yii emphasizes performance and efficiency, is suitable for high-load applications, and provides efficient ActiveRecord and cache systems, but has a steep learning curve.

With the popularization and development of digital currency, more and more people are beginning to pay attention to and use digital currency apps. These applications provide users with a convenient way to manage and trade digital assets. So, what kind of software is a digital currency app? Let us have an in-depth understanding and take stock of the top ten digital currency apps in the world.

The built-in quantization tools on the exchange include: 1. Binance: Provides Binance Futures quantitative module, low handling fees, and supports AI-assisted transactions. 2. OKX (Ouyi): Supports multi-account management and intelligent order routing, and provides institutional-level risk control. The independent quantitative strategy platforms include: 3. 3Commas: drag-and-drop strategy generator, suitable for multi-platform hedging arbitrage. 4. Quadency: Professional-level algorithm strategy library, supporting customized risk thresholds. 5. Pionex: Built-in 16 preset strategy, low transaction fee. Vertical domain tools include: 6. Cryptohopper: cloud-based quantitative platform, supporting 150 technical indicators. 7. Bitsgap:

Integrating Sentry and Bugsnag in Laravel can improve application stability and performance. 1. Add SentrySDK in composer.json. 2. Add Sentry service provider in config/app.php. 3. Configure SentryDSN in the .env file. 4. Add Sentry error report in App\Exceptions\Handler.php. 5. Use Sentry to catch and report exceptions and add additional context information. 6. Add Bugsnag error report in App\Exceptions\Handler.php. 7. Use Bugsnag monitoring

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

This groundbreaking development will enable financial institutions to leverage the globally recognized ISO20022 standard to automate banking processes across different blockchain ecosystems. The Ease protocol is an enterprise-level blockchain platform designed to promote widespread adoption through easy-to-use methods. It announced today that it has successfully integrated the ISO20022 messaging standard and directly incorporated it into blockchain smart contracts. This development will enable financial institutions to easily automate banking processes in different blockchain ecosystems using the globally recognized ISO20022 standard, which is replacing the Swift messaging system. These features will be tried soon on "EaseTestnet". EaseProtocolArchitectDou

Recommended cryptocurrency trading platforms include: 1. Binance: the world's largest trading volume, supports 1,400 currencies, FCA and MAS certification. 2. OKX: Strong technical strength, supports 400 currencies, approved by the Hong Kong Securities Regulatory Commission. 3. Coinbase: The largest compliance platform in the United States, suitable for beginners, SEC and FinCEN supervision. 4. Kraken: a veteran European brand, ISO 27001 certified, holds a US MSB and UK FCA license. 5. Gate.io: The most complete currency (800), low transaction fees, and obtained a license from multiple countries. 6. Huobi Global: an old platform that provides a variety of services, and holds Japanese FSA and Hong Kong TCSP licenses. 7. KuCoin

Building a live chat application in Laravel requires using WebSocket and Pusher. The specific steps include: 1) Configure Pusher information in the .env file; 2) Set the broadcasting driver in the broadcasting.php file to Pusher; 3) Subscribe to the Pusher channel and listen to events using LaravelEcho; 4) Send messages through Pusher API; 5) Implement private channel and user authentication; 6) Perform performance optimization and debugging.
