Das script läuft nach der standart PHP.ini nicht minimal 30 sekunden, sondern maximal 30 sekunden. Sonst würde der browser ja bei jeder webseite mindestens 30 sekunden laden, auch wenn die seite bereit aufgebaut ist.
Zum auslaufen:
Stichwort cronjob.
Code:
<?php
set_time_limit(0);        //Maximale ausführungszeitzeit: unbegrenzt
ignore_user_abort(TRUE);  //Script soll nach abbruch der verbindung mit dem clienten weiter laufen

function machwas()
{
  sleep(10);              //30 sekunden warten
  machwas();              //funktion erneut aufrufen
}
machwas();
?>
Das script sollte natürlich besser per shell ausgeführt werden und nicht per browser. Dazu muss der safe_mode off sein!
Anderes beispiel:
Code:
<?php
set_time_limit(0);        //Maximale ausführungszeitzeit: unbegrenzt
ignore_user_abort(TRUE);  //Script soll nach abbruch der verbindung mit dem clienten weiter laufen

while(TRUE)
{
  sleep(10);              //30 sekunden warten
}
?>
Alle 10 sekunden wird der code in der function bzw in der schleife ausgeführt.
Zu dem teamspeak-problem:
Code:
<?php
$ipaddy = '127.0.0.1';
$port = 8767;

$sock = fsockopen('udp://'.$ipaddy, (int)$port, $num; $error, 30) || die('Fehler! Fehlernummer:'.$num."\n".'Fehler:'.$error);

fputs(das ganze teamspeak zeug);
?>