CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
12.02.2009, 18:44:19
|
Junior Member
|
|
Registriert seit: Jan 2004
Ort: Fredersdorf bei Berlin
Alter: 40
Beiträge: 184
|
|
AW: HTTP-Status-Code ermitteln
Zitat:
Zitat von xabbuh
PHP schickt standardmäßig aber keinen entsprechend Header, wenn du diesen nicht mit header() o.ä. modifizierst.
|
Richtig, deswege könnte ich davon ausgehen, dass immer ein bestimmter header (status-code) an den browser gesendet wird, aber wenn ich den header mit "header()" modifiziere schickt php ja einen anderen status code und genau den brauche ich.
|
13.02.2009, 09:53:09
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: HTTP-Status-Code ermitteln
EDIT: entfernt
Geändert von xabbuh (13.02.2009 um 09:54:31 Uhr)
|
15.02.2009, 12:14:21
|
Anfänger
|
|
Registriert seit: Apr 2008
Alter: 31
Beiträge: 22
|
|
AW: HTTP-Status-Code ermitteln
ENTFERNT WAR DOPPELPOST
Geändert von DeadLord (15.02.2009 um 12:17:46 Uhr)
Grund: Doppelpost
|
15.02.2009, 12:16:44
|
Anfänger
|
|
Registriert seit: Apr 2008
Alter: 31
Beiträge: 22
|
|
AW: HTTP-Status-Code ermitteln
eventuell hilft dir dieses Script
PHP-Code:
<?
function http_test_existance(
$url,
$timeout = 10
) {
$timeout = (int)round($timeout/2+0.00000000001);
$return = array();
### 1 ###
$inf = parse_url($url);
if (!isset($inf['scheme']) or $inf['scheme'] !== 'http') return array('status' => -1);
if (!isset($inf['host'])) return array('status' => -2);
$host = $inf['host'];
if (!isset($inf['path'])) return array('status' => -3);
$path = $inf['path'];
if (isset($inf['query'])) $path .= '?'.$inf['query'];
if (isset($inf['port'])) $port = $inf['port'];
else $port = 80;
### 2 ###
$pointer = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$pointer) return array('status' => -4, 'errstr' => $errstr, 'errno' => $errno);
socket_set_timeout($pointer, $timeout);
### 3 ###
$head =
'HEAD '.$path.' HTTP/1.1'."\r\n".
'Host: '.$host."\r\n";
if (isset($inf['user']))
$head .= 'Authorization: Basic '.
base64_encode($inf['user'].':'.(isset($inf['pass']) ? $inf['pass'] : ''))."\r\n";
if (func_num_args() > 2) {
for ($i = 2; $i < func_num_args(); $i++) {
$arg = func_get_arg($i);
if (
strpos($arg, ':') !== false and
strpos($arg, "\r") === false and
strpos($arg, "\n") === false
) {
$head .= $arg."\r\n";
}
}
}
else $head .=
'User-Agent: Selflinkchecker 1.0 (http://aktuell.selfhtml.org/artikel/php/existenz/)'."\r\n";
$head .=
'Connection: close'."\r\n"."\r\n";
### 4 ###
fputs($pointer, $head);
$response = '';
$status = socket_get_status($pointer);
while (!$status['timed_out'] && !$status['eof']) {
$response .= fgets($pointer);
$status = socket_get_status($pointer);
}
fclose($pointer);
if ($status['timed_out']) {
return array('status' => -5, '_request' => $head);
}
### 5 ###
$res = str_replace("\r\n", "\n", $response);
$res = str_replace("\r", "\n", $res);
$res = str_replace("\t", ' ', $res);
$ares = explode("\n", $res);
$first_line = explode(' ', array_shift($ares), 3);
$return['status'] = trim($first_line[1]);
$return['reason'] = trim($first_line[2]);
foreach ($ares as $line) {
$temp = explode(':', $line, 2);
if (isset($temp[0]) and isset($temp[1])) {
$return[strtolower(trim($temp[0]))] = trim($temp[1]);
}
}
$return['_response'] = $response;
$return['_request'] = $head;
return $return;
}
?>
dieses script meinetwegen per include einbinden oder direkt mit in die datei und so aufrufen
PHP-Code:
$url = "DEINE ZU PRÜFENDE ADRESSE MIT HTTP:// DAVOR";
$result = http_test_existance($url); //AUFRUF DES SCRIPTS
if(($result['status'] == "500") OR ($result['status'] == "404") OR ($result['status'] == "503"))
{
echo "SEITE NICHT ERREICHBAR";
}
else
{
echo "SEITE ERREICHBAR";
}
Sollte so funktionieren wenn nicht pm oder hier melden
|
15.02.2009, 12:36:15
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: HTTP-Status-Code ermitteln
Zitat:
Zitat von DeadLord
PHP-Code:
$url = "DEINE ZU PRÜFENDE ADRESSE MIT HTTP:// DAVOR";
$result = http_test_existance($url); //AUFRUF DES SCRIPTS
if(($result['status'] == "500") OR ($result['status'] == "404") OR ($result['status'] == "503"))
{
echo "SEITE NICHT ERREICHBAR";
}
else
{
echo "SEITE ERREICHBAR";
}
|
die ergebnis-meldung des skripts weckt bei mir den leisen verdacht, dass du nicht wirklich weisst, was das anliegen des op war...
cx
|
15.02.2009, 13:37:39
|
Anfänger
|
|
Registriert seit: Apr 2008
Alter: 31
Beiträge: 22
|
|
AW: HTTP-Status-Code ermitteln
Andere Möglichkeit ist
PHP-Code:
echo $result['status'];
aber das sollte man im fortgeschrittenen Bereich schon selber hinbekommen
|
15.02.2009, 13:41:18
|
SELFPHP Profi
|
|
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
|
|
AW: HTTP-Status-Code ermitteln
der op wollte den gesendeten status-header eines laufenden / abgelaufenden skripts abfangen. er wollte imho nicht testen, ob ein server erreichbar ist .-
cx
|
15.02.2009, 13:54:21
|
Anfänger
|
|
Registriert seit: Apr 2008
Alter: 31
Beiträge: 22
|
|
AW: HTTP-Status-Code ermitteln
ok habe ich wohl falsch verstanden
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 08:14:44 Uhr.
|