PHP Hilfsfunktionen (PHP)
Aus Macwrench
Ein paar nützliche Hilfsfunktionen für den täglichen PHP-Irrsinn ;-)
Inhaltsverzeichnis |
Dateisystem
glob_r()
Eine rekursive Variante von glob()
function glob_r($dir = "", $flags = 0) { return $files; } // get all files: // get all subdirectories: $_dirs = scandir($dir); foreach($_dirs as $_dir) { continue; } $dirs[] = $dir.$_dir; } } foreach($dirs as $dir) { $_files = glob_r($dir.$supp,$flags); } return $files; }
alternativ (ab PHP5) mit der Klasse RecursiveDirectoryIterator der SPL:
<?php $dir_iterator = new RecursiveDirectoryIterator("/path/to/directory"); $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST); foreach ($iterator as $file) { } ?>
CLI-Skripte
Ein paar hilfreiche Funktionen für PHP-CLI Skript
isRunning()
überprüft mittels
ps -ax und
grep, ob dieses Skript bereits läuft. Die PHP-Funktion shell_exec() muss dafür verfügbar sein. Funktioniert nur, wenn das wie folgt Skript direkt aufgerufen wird und nicht über den PHP-Interpreter:
./test.php # und NICHT so /usr/bin/local/php5 -q ./test.php
Letzterer Aufruf hätte zur Folge, dass in der verwendeten Variable $_ENV["_"] der PHP-Interpreter (in diesem Fall /usr/bin/local/php5 steht und nicht das Skript. Dazu ist ggf. mittels
chmod die Ausführungs-Berechtigung entsprechend zu setzen.
return false; } } else { $cmd = $_ENV["_"]; } foreach($psaux as $process) { if(stripos($process,$cmd) && !stripos($process,"grep")) { $processes[] = $process; } } return true; } else { return false; } }
isConsole()
schützt ein CLI-Skript davor, über einen Webserver aufgerufen zu werden:
/** * check if this script has been called from a terminal (console) or via web server. * @return boolean */ if( ) { return false; } return true; }





