connection_status
Command |
Version |
Description |
Inhalt der Datei zahlen.txt |
Example 1 |
Output 1 |
Example 2 |
Output 2 |
Inhalt der Datei zahlen.txt |
Example 3 |
Output 3 |
Commandint connection_status ( void )
Version(PHP 3 >= 3.0.7, PHP 4, PHP 5)
DescriptionMit connection_status() kann man sich den internen Verbindungsstatus von PHP zur�ckgeben lassen.
Folgende drei (bzw. vier - siehe unten) Zustandsm�glichkeiten k�nnen eintreten:
� 0 - NORMAL
� 1 - ABORTED
� 2 - TIMEOUT
� 3 - ABORTED und TIMEOUT
Ein aktives PHP-Skript hat normalerweise den Status NORMAL, es sei denn, dass durch irgendein Vorkommnis dieser Status ge�ndert wird. Dabei gibt es mehrere M�glichkeiten. Zum einen kann der User das laufende Skript abbrechen und somit den Status auf ABORTED setzen, oder es kann vorkommen, dass das Skript l�nger l�uft, als das eingestellte Zeitlimit zul�sst (Standard-Timeout in der Apache-Konfigurationsdatei ist 30 Sekunden, oder �ber set_time_limit() eine vorgegebene Zeit). Bei �berschreiten dieses Limits wird der Verbindungsstatus auf TIMEOUT gesetzt. Anhand dieser drei Werte kann man nun entscheiden, wie man mit diesem Status umgehen m�chte. Oftmals will man gerade beim Abbruch durch den User noch wichtige Daten retten. Beachten Sie bitte, dass die Funktion connection_status() gleichzeitig den Staus ABORTED und TIMEOUT besitzen kann. Dies geschieht gerade dann, wenn man mit der Funkton ignore_user_abort() den Benutzerabbruch unterbindet. Dennoch kann es zu einem TIMEOUT kommen. In diesem Fall gibt die Funktion den Wert 3 (ABORTED + TIMEOUT) zur�ck, weil neben dem Timeout auch der (folgenlose) Benutzerabbruch registriert wurde.
Siehe auch:
connevtion_aborted()
� connection_timeout()
� register_shutdown_function()
Folgende drei (bzw. vier - siehe unten) Zustandsm�glichkeiten k�nnen eintreten:
� 0 - NORMAL
� 1 - ABORTED
� 2 - TIMEOUT
� 3 - ABORTED und TIMEOUT
Ein aktives PHP-Skript hat normalerweise den Status NORMAL, es sei denn, dass durch irgendein Vorkommnis dieser Status ge�ndert wird. Dabei gibt es mehrere M�glichkeiten. Zum einen kann der User das laufende Skript abbrechen und somit den Status auf ABORTED setzen, oder es kann vorkommen, dass das Skript l�nger l�uft, als das eingestellte Zeitlimit zul�sst (Standard-Timeout in der Apache-Konfigurationsdatei ist 30 Sekunden, oder �ber set_time_limit() eine vorgegebene Zeit). Bei �berschreiten dieses Limits wird der Verbindungsstatus auf TIMEOUT gesetzt. Anhand dieser drei Werte kann man nun entscheiden, wie man mit diesem Status umgehen m�chte. Oftmals will man gerade beim Abbruch durch den User noch wichtige Daten retten. Beachten Sie bitte, dass die Funktion connection_status() gleichzeitig den Staus ABORTED und TIMEOUT besitzen kann. Dies geschieht gerade dann, wenn man mit der Funkton ignore_user_abort() den Benutzerabbruch unterbindet. Dennoch kann es zu einem TIMEOUT kommen. In diesem Fall gibt die Funktion den Wert 3 (ABORTED + TIMEOUT) zur�ck, weil neben dem Timeout auch der (folgenlose) Benutzerabbruch registriert wurde.
Siehe auch:
connevtion_aborted()
� connection_timeout()
� register_shutdown_function()
Inhalt der Datei zahlen.txt
Timeout - Monitore||17"-Monitor||Monday 30th of July 2001 10:32:38 PM
Example 1
<?PHP
register_shutdown_function('countdown');
set_time_limit(10);
$produktseite = 'Monitore';
$produkt = '17"-Monitor';
$zeit = date('l dS of F Y h:i:s A');
for($x = 1; $x <= 55555555; $x++){
echo $x . '<br>';
}
echo 'Ein simpler Shop<br>';
function countdown(){
$var = connection_status();
switch($var){
case 0:
echo 'Alles OK - next gehts!';
break;
case 1:
global $produktseite, $produkt, $zeit;
$werte = $produktseite . '||' . $produkt . '||' . $zeit . "\n";
$fp = fopen('statistik.txt', 'a');
fwrite($fp, $werte);
fclose($fp);
break;
case 2:
global $produktseite, $produkt, $zeit;
$werte = 'Timeout - ' . $produktseite . '||' . $produkt . '||' . $zeit . "\n";
$fp = fopen('timeout.txt', 'a');
fwrite($fp, $werte);
fclose($fp);
break;
}
}
?>
Output 1
1
2
3
.
.
.
51290
51291
Fatal error: Maximum execution time of 10 seconds exceeded in e:/apache/htdocs/php/index.php on line 9
Example 2
<?PHP
register_shutdown_function('countdown');
$produktseite = 'Monitore';
$produkt = '17"-Monitor';
$zeit = date('l dS of F Y h:i:s A');
for($x = 1; $x <= 5; $x++){
echo $x . '<br>';
}
echo 'Ein simpler Shop<br>';
function countdown(){
$var = connection_status();
switch($var){
case 0:
echo 'Alles OK - next gehts!';
break;
case 1:
global $produktseite, $produkt, $zeit;
$werte = $produktseite . '||' . $produkt . '||' . $zeit . "\n";
$fp = fopen('statistik.txt', 'a');
fwrite($fp,$werte);
fclose($fp);
break;
case 2:
global $produktseite, $produkt, $zeit;
$werte = 'Timeout - ' . $produktseite . '||' . $produkt . '||' . $zeit . "\n";
$fp = fopen('timeout.txt', 'a');
fwrite($fp, $werte);
fclose($fp);
break;
}
}
?>
Output 2
1
2
3
4
5
Ein simpler Shop
Alles OK - next gehts!
Inhalt der Datei zahlen.txt
Monitore||17"-Monitor||Monday 30th of July 2001 10:30:15 PM
Example 3
<?PHP
// Wie Example 1, allerdings ein Browserabbruch durch den User
// vor Verstreichen der 10 Sekunden
?>
Output 3
1
2
3
.
.
.
26926
26927
26928
Zurück: connection_aborted
Weiter: connection_timeout