PHP Skripte

Open Source Projekte:PHP Skripte

 

Ajax / PHP Webmanager
Buchstabenspiel
Domaincheck Skript

In dieser Rubrik finden Sie kleine PHP Beispielskripte.

 

 
Verzeichnisse rekursiv löschen

PHP kann auf dem Server Dateien bearbeiten. Die nachfolgende Funktion kann Verzeichnisse auf dem Server löschen, auch wenn Dateien oder Unterverzeichnisse enthalten sind. Die Funktion kann von einem Cronjob aufgerufen werden kann. Damit lassen sich dann automatisiert Cache oder Session Daten löschen. Das Verzeichnis wird ebenfalls über PHP gelöscht und im Anschluss neu angelegt. Damit das Skript korrekt arbeiten kann, muss PHP die Rechte besitzen Ordner und Dateien löschen zu können.

<?php
define('DIR_TO_DEL','./verzeichnisname');  // das zu löschende Verzeichnis

error_reporting(0);  // Fehlermeldungen unterdrücken
function boolDelDir($source)  {
    if(@file_exists($source))  {
        if(@is_dir($source))  {
            $handle=@opendir($source);
            while (false !== ($file = @readdir($handle)))  {
                if($file != '.' && $file != '..' && $file !='')  {
                    boolDelDir($source."/".$file);
                }
            }
            @closedir($handle);
            return @rmdir($source."/".$file);
        } else  {
            return @unlink($source);
        }
    }  else  {
       return false;
    }
}

boolDelDir(DIR_TO_DEL);
@mkdir(DIR_TO_DEL, 0755); // hier wird das Verzeichnis über PHP neu angelegt
?>


 


Zip Archive mit PHP entpacken
Ist auf Ihrem Webhoster für PHP die Extension php_zip.dll installiert? Dann lassen sich damit mit wenigen Skriptzeilen ZIP Archive auf dem Server entpacken. Beachten Sie jedoch, dass das Entpacken abhängig von der Skriptlaufzeit, dem Memory_Limit und der Auslastung vom Server ist. Entpacken Sie keine großen Archive! Dafür sollte die unzip Funktionalität vom Server genutzt werden.

<?php
  $zipclass = new ZipArchive;
  $rs = $zip->open('dieZipDatei.zip');
  if ($rs === TRUE) {
      $zipclass->extractTo('angelegtesVerzeichnisAufDemServer/');
      $zipclass->close();
      echo 'Dekomprimierung erfolgreich';
  } else {
  echo 'Dekomprimierung fehlgeschlagen';
  }
?> 


 


MemoryLimit ermitteln

Wie fast überall im Leben gibt es oft Beschränkungen was Webspace und Speicherplatz auf den Server betrifft. Häufig ist das MemoryLimit die Ursache, dass ein bestimmtes Skript nicht mehr lauffähig ist. Mit einer PHP Funktion kann das genutzte MemoryLimit eines Skripts berechnet und ausgegeben werden. Das nachfolgende Skript speichert den Timestamp des Aufrufs, die aufgerufene Seite und den Speicherverbrauch. Das Skript selber benötigt ebenfalls ein geringes MemoryLimit.

$memory_limit_var = memory_get_peak_usage();
$contentfile_mm = time()."\t".$_SERVER['REQUEST_URI']."\t".$memory_limit_var."\n";
file_put_contents('memorylimit-outputfile.txt',$contentfile_mm, FILE_APPEND | LOCK_EX);

Achtung! Die Datei "'memorylimit-outputfile.txt" wird immer wieder um neuere Einträge ergänzt. Nachdem Sie die Daten ermittelt haben, sollte das Skript wieder entfernt werden, sonst wächst die erzeugte Datei schnell bei jedem Seitenaufruf.
 



Google Wetter Daten mit cURL nutzen
cURL hat viele Vorteile gegenüber dem direkten Auslesen der Ressourcen über PHP. Ein wichtiger Vorteil ist, dass hierfür nicht die Option "allow_url_fopen" auf dem Server aktiviert werden muss, was vielfach ein Sicherheitsrisiko ist. Nachfolgend demonstriere ich anhand eines Beispiels wie einfach cURL genutzt werden kann, um den Google Wetterservice auszulesen.

<?php

// Initialisieren von cURL
$cl = curl_init();
// URL für cURL setzen, PLZ-Land und Sprache sollten hier gesetzt werden
curl_setopt($cl, CURLOPT_URL, 'https://www.google.com/ig/api?weather=06128-Germany&hl=de');
// Header Ausgabe von cURL deaktivieren
curl_setopt($cl, CURLOPT_HEADER, 0);
// Die Antwort vom Server als String speichern
curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1);
// cURL ausführen und Antwort in Variable speichern
$wetter_request = curl_exec($cl);
// cURL Verbindung schließen
curl_close($cl);

// über SimpleXML auf die erhaltenen XML Daten zugreifen
$wetter_api = simplexml_load_string(utf8_encode($wetter_request));
echo "Die aktuelle Temperatur in Halle / Saale ist: ".
          $wetter_api->weather->current_conditions->temp_c->attributes()->data.
         " Grad Celsius<br />";
echo "Morgen Tiefstwerte: ".
          $wetter_api->weather->forecast_conditions->low->attributes()->data.
         " Grad Celsius<br />";
echo "Morgen Hoechstwerte: ".
          $wetter_api->weather->forecast_conditions->high->attributes()->data.
          " Grad Celsius<br />";

?>