Lapho usebenza ne-PHP, inselele eyodwa abathuthukisi abaningi abahlangabezana nayo isidingo sokususa uhla lwemibhalo kanye nemibhalo engaphansi yalo ngokuphindaphindiwe. Lokhu kusebenza kubaluleke kakhulu lapho usebenza nokuphathwa kwefayela kuhlelo lwakho lokusebenza lwe-PHP. Ngenkathi umsebenzi we-rmdir() ku-PHP uhlinzeka ngomsebenzi oyisisekelo wokukhipha umkhombandlela, awusebenzi uma uhla lwemibhalo lungenalutho. Kulokhu, udinga ukususa wonke amafayela nama-subdirectories kuqala. Yilapho ukuphindaphinda kufika khona. Ngalesi sihloko, sibheka kabanzi le nqubo.
Kafushane, ukususa umkhombandlela ngokuphindaphindiwe, sidinga ukudala umsebenzi ongasusa ifayela ngalinye nohlu lwemibhalo olungaphansi kohlu oluhlosiwe, bese ekugcineni lususa uhla lwemibhalo oluwumzali ngokwalo. Lokhu kungase kuzwakale kuyinkimbinkimbi, kodwa nge-PHP, kungafinyelelwa ngaphandle komthungo. Ake sibone ukuthi singakwenza kanjani.
function deleteDirectory($dirPath) { if (! is_dir($dirPath)) { throw new InvalidArgumentException("$dirPath must be a directory"); } if (substr($dirPath, strlen($dirPath) - 1, 1) != '/') { $dirPath .= '/'; } $files = glob($dirPath . '*', GLOB_MARK); foreach ($files as $file) { if (is_dir($file)) { deleteDirectory($file); } else { unlink($file); } } rmdir($dirPath); }
Ukuqonda Ikhodi ye-PHP
Kumsebenzi ongenhla, siqale sihlole ukuthi indlela enikeziwe iyinkomba yini. Uma kungenjalo, i-InvalidArgumentException iyaphonswa. Sibe sesiqinisekisa ukuthi indlela yohla lwemibhalo iphetha nge-slash. Okulandelayo, sithola wonke amafayela namafolda ohla lwemibhalo olunikeziwe ngokusebenzisa umsebenzi weglob().
Esinyathelweni esilandelayo, siphindaphinda ifayela ngalinye kanye nohla lwemibhalo olubuyiswe yi-glob() function. Uma into iwuhla lwemibhalo, sibiza umsebenzi we-deleteDirectory() ngokuphindaphindiwe, lokhu kusivumela ukuthi sisuse wonke ama-subdirectories namafayela. Uma into ingeyona uhla lwemibhalo (okusho ukuthi iyifayela), isuswa umsebenzi wokususa ukuxhumanisa (). Okokugcina, ngemva kokuthi lonke ifayela nohlu lwemibhalo olungaphansi lususiwe, sisusa uhla lwemibhalo oluyinhloko sisebenzisa umsebenzi we-rmdir().
Umsebenzi Ophindaphindayo kanye Nemitapo yolwazi ye-PHP ehilelekile
I-recursion, kusayensi yekhompiyutha, kuyindlela lapho isixazululo senkinga sincike ezixazululweni ezimweni ezincane zenkinga efanayo. Umsebenzi wokuphindaphinda iyithuluzi elinamandla elisivumela ukuthi sibhale ikhodi ehlanzekile nesebenzayo yemisebenzi eyinkimbinkimbi, njengokuzulazula kuzakhiwo zedatha ezifakwe esidlekeni.
Esimweni sethu, umsebenzi we-PHP glob() usetshenziselwa ukuthola amagama endlela afana nephethini, i-GLOB_MARK yengeza isileshi kuhla lwemibhalo ngalunye olubuyisiwe. Umsebenzi we-unlink() usetshenziselwa ukususa ifayela. rmdir() umsebenzi usetshenziselwa ukususa izinkomba ezingenalutho.
The ukuqonda nokusebenzisa umsebenzi wokuphindaphinda, i-glob(), unlink(), kanye ne-rmdir() idlala indima ebalulekile ekusebenziseni ngempumelelo lo msebenzi. Kubalulekile futhi ukuphatha okuhlukile kanye namaphutha ngokubheka ukuthi indlela enikeziwe ikhomba ngempela yini uhla lwemibhalo nokuthi amafayela noma izinkomba zingasuswa ngempumelelo, nokunikeza impendulo ehambisanayo kubasebenzisi noma onjiniyela.