by:

Hallo,

nach meinem Urlaub mal wieder ein kleiner Artikel zum Thema PHP.

Manchmal ist es nützlich einen in den Hintergrund zu legen, dies dient zum Beispiel dazu bei rechen- und zeitintensiven Prozessen den Benutzer nicht warten zu lassen.

Code

<?php shell_exec("nohup php /var/www/test.php > /dev/null 2> /dev/null & echo $"); ?>

Die PHP Funktion shell_exec führt eine shell Befehl aus.

nohup nabelt ein Programm vom Elternprozess ab

php -q /var/www/test.php führt den PHP Script aus, der im Hintergrund laufen soll.

> /dev/null leitet die Ausgabe ins Nirgendwo um.

Wenn also diese Zeile im Browser geöffnet wird, wird ein Subprozess von php gestartet, das bedeutet der Benutzer kann weitersurfen, während der Prozess auf dem Server weiter läuft.

Leicht ist das z.B. mit einer Endlosschleife zu testen.

Um sich aktive Prozesse am Server anzusehen genügt z.B. folgender shell Befehl:

ps aux | grep php

Ich hoffe der Beitrag hat euch gefallen und freue mich über euer Feedback.

MFG

Andreas


Kommentare

by:

Freedom Not Fear 2008

Freiheit statt Angst


Kommentare

by:

Hallo,

jetzt ist es endlich soweit, ich fahr 2 Wochen nach Italien und Kärnten :)

Ich werde also die Tage nichts Neues veröffentlichen und wünsch euch eine schöne Zeit.

BTW. ist seit heute die Webseite unter http://codejungle.org erreichbar, Spenden willkommen.

In der Zwischenzeit kann ich auf mein anderes Projekt http://hackers.ath.cx verweisen, das zumindest täglich aktualisiert wird.

Also macht es gut!

LG

Andreas


Kommentare

by:

Hallo,

ich habe am späten Abend noch etwas mit Gesichtserkennung gespielt und möchte euch die ersten Ergebnisse nicht vorenthalten.

Sie sind zwar noch nicht 100 % ausgereift, aber für low level hardware (20 euro webcam) zufriedenstellend. Aber genug der geschriebenen Worte, hier ein kleiner Screencast->

Ich werde euch natürlich auf dem laufenden halten, wenn das ganze Projekt etwas ausgereifter ist.

[UPDATE]

Nach einigen Tests ist es mir gelungen die Gesichtserkennung in realtime durchzuführen, sprich ohne das lästige Flackern. Ziel der Aktion soll sein, im Rahmen einer Kunstaktion, Menschen auf einem öffentlichen Platz zu erkennen, eine Sprechblase über Ihren Kopf zu hinterlegen (mit Texten wie Raubkopierer etc) um auf die Misstände der Vorratsdatenspeicherung aufmerksam zu machen und die Öffentlichkeit darüber zu informieren.


Zur verwendeten Software:

Ubuntu

camstream

OpenCV

Für weitere Fragen stehe ich gerne zur Verfügung.

MFG

Andreas

Quellen:

http://opencvlibrary.sourceforge.net/

http://code.google.com/p/ehci/


Kommentare

by:

Hallo,

nachdem ich die letzten Tage wenig neues veröffentlicht habe, heute mal etwas interessantes für den ambitionierten PHP Programmierer.

Eine PLZ Umkreissuche in PHP, dazu benötigen wir:

  1. Eine Geo DB mit Long und LAT sowie PLZ (am besten von opengeodb auf sourceforge)
  2. Einen brauchbaren Umkreissuchen-Script
  3. Etwas Zeit

Bei meinen Versuchen hat sich herausgestellt, dass ich die meiste Zeit damit verbracht habe, eine brauchbare Datenbank zu finden und zu formatieren. Hilfe dazu weiter unten, jetzt erstmal etwas Code:

Code

<?
// Zuerst eine Verbindung zur Datenbank aufbauen!
 $connect=@mysql_connect("localhost", "user", "pass")
or die("Cant connect to Database");
 @mysql_select_db("geo_plz", $connect)or die("Cant select Database");

// die PLZ nach der wir suchen
$plz = '9220';

// der Umkreis in Km
$umkreis = 5;

// Erdradius (geozentrischer Mittelwert) in Km
$radius = 6368;

/* -------------------------- */

$sql_rad = mysql_query("SELECT lon, lat FROM `plz_at` WHERE `plz` = '$plz' ");
$erg_rad = mysql_fetch_object($sql_rad);

// Umrechnung von GRAD IN RAD

$lon = $erg_rad->lon / 180 * M_PI;
$lat = $erg_rad->lat / 180 * M_PI;

// jetzt erfolgt die eigentliche Abfrage

$query = "SELECT ort, plz, (
 ".$radius." * SQRT(2*(1-cos(RADIANS(lat)) * 
 cos(".$lat.") * (sin(RADIANS(lon)) *
 sin(".$lon.") + cos(RADIANS(lon)) * 
 cos(".$lon.")) - sin(RADIANS(lat)) * sin(".$lat.")))) AS Distance 
 FROM plz_at WHERE 
 ".$radius." * SQRT(2*(1-cos(RADIANS(lat)) * 
 cos(".$lat.") * (sin(RADIANS(lon)) * 
 sin(".$lon.") + cos(RADIANS(lon)) * 
 cos(".$lon.")) - sin(RADIANS(lat)) * sin(".$lat."))) <= ".$umkreis." 
 ORDER BY Distance
";

// die Ausgabe (vereinfacht)

$sql = mysql_query($query);
while( $erg = mysql_fetch_object($sql) ) {

 echo '
<pre>', print_r($erg), '</pre>
';
}
?>


Natürlich wäre es jetzt denkbar für jede gefundene PLZ im Umkreis eine Abfrage der Mitglieder oder Filialen zu machen, diesen Spass überlasse ich aber lieber euch :)

Wer die formatierte Datenbank für Deutschland, Österreich und Schweiz braucht oder eine Frage hat, einfach kurz melden.

LG

Andreas

Eine wichtige Adresse die beim Erstellen der Datenbank sowie der Gestaltung der Abfrage hilfreich ist lautet:

http://opengeodb.giswiki.org/wiki/OpenGeoDB_-_Umkreissuche

[UPDATE]

Ich habe die Datenbank online gestellt, übernehme aber keine Garantie für Vollständigkeit und Richtigkeit.

http://www.codejungle.org/code/zip.sql.gz


Kommentare


Seiten: