Just nu i M3-nätverket
Gå till innehåll
NoName2

Uptime +php +apache +win

Rekommendera Poster

Okej dax igen ....

 

if ($file=fopen("http://www.php.net/server-status", "r")) {

while($line=fgets($file)) {

if (preg_match("/^Server uptime/", $line)) {

echo $line;

break;

}

}

}

?>

 

Fungerar men när jag sätter sätter "http://www.sjodahl.org/server-status"

 

istället fungerar det inte ...(sidan blir helt tom)

Men testar jag den genom webbläsaren fungerar det.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

if ($file=fopen("http://www.sjodahl.org", "r")) {

while($line=fgets($file)) {

// if (preg_match('/^Server uptime:/', $line)) {

echo $line;

// break;

// }

}

}

 

 

Tar jag bort "if" satsen så skriver den ut hela dokumentet men med "if" satsen så blir det bara tomt.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Fel post ;D (hehe tur att det är min tråd annars hade jag väl åkt ut här ifrån för spamming ;)

 

if ($file=fopen("http://www.sjodahl.org/server-status", "r")) {

while($line=fgets($file)) {

// if (preg_match('/^Server uptime:/', $line)) {

echo $line;

// break;

// }

}

}

 

skall koden se ut, då skriver den ut precis allt, å tar jag med If satsen så blir det tomt ....

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
å tar jag med If satsen så blir det tomt

 

Skillnaden verkar bero på det här (view source på de bägge):

Apache 1.3.x:

Server uptime:  13 days 13 hours 47 minutes 19 seconds<br>

 

Apache 2.0

<dt>Server uptime:  17 days 11 hours 43 minutes 11 seconds</dt>

 

I det senare fallet (ditt fall) så kommer inte regexpen att matcha eftersom den testar på "^Server" vilket betyder "rad som börjar med Server".

 

Ta bort taket så funkar det nog.

 

Edit: Det ger föresten bara webserverns uptime, inte själva datorn, ofta samma men inte nödvändigtvis

 

 

[inlägget ändrat 2003-06-07 15:36:17 av fhe]

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Det löste sig det med....

 

Fast det går fortfarande att komma åt den utifrån, vill du inte det så ställer du förslagsvis in den så här:

 

<Location /server-status>
   SetHandler server-status
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Location>

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Ett snyggare regexp som gör samma sak är:

 

Jag övervägde den varianten, men jag har kommit fram till att [^0-9] är bättre ur utbildningsperspektiv eftersom man om man lär sig hur [^...] och [...] funkar kan matcha nästan vad som helst när som helst.

 

Jag vill inte säga att jag har rätt men det känns spontant som om man har bättre förutsättningar att lära sig nåt bra om man lär sig de absoluta grunderna först.

 

Split:en var bra, den tänkte jag inte på, det var försent på kvällen :-)

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Om jag skall kunna visa serverns uptime på hemsidan för alla måste det vara typ:

 

"Allow from all" antar jag ?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Nej,

För att få det att funka behöver du bara visa uptimen för php som ju går på samma maskin. Därför behöver du bara "Allow from 127.0.0.1". Om du vill att andra utifrån ska kunna surfa till /server-status så ska du ha "Allow from all" men det finns väl ingen anleding.

 

Föresten (och det här är rätt viktigt):

MD hade en version ovanför med split, använd den istället för min regexp. Upptäckte just att regexpen som plockar ut siffrorna ur raden inte fungerar när servern är nystartad, då skriver den nämligen bara "2 seconds" och inte "0 days 0 hours 0 minutes 2 seconds", det gör att splitten funkar mycket bättre (regexpen går att patcha men det är inte värt besväret).

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...