Just nu i M3-nätverket
Jump to content

Uptime +php +apache +win


NoName2

Recommended Posts

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.

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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 ....

 

Link to comment
Share on other sites

å 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]

Link to comment
Share on other sites

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>

 

Link to comment
Share on other sites

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 :-)

 

 

Link to comment
Share on other sites

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

 

"Allow from all" antar jag ?

 

Link to comment
Share on other sites

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).

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...