Toon posts:

[php] include vanaf andere server

Pagina: 1
Acties:

Verwijderd

Topicstarter
een vriend en ik hebben allebei op onze server een uptime klok scriptje draaien. Zo dat we elkaars uptime kunnen zien.

Nu wil ik op mijn server allebei onze uptime op 1 page zien. Dus ik heb mijn uptimescript.. en daaronder include ik die van hem.
code:
1
2
3
<?
include "http://62.251.90.xxx/uptime.php";
?>

maar dan krijg ik een error.
Warning: Failed opening 'http://62.251.90.xxx/uptime.php' for inclusion (include_path='') in c:\program files\easyphp\www\uptime.php on line 21
Nu heb ik gehoord dat het misschien aan zijn server kan liggen dat hij die toegang niet geeft ofzo. Is het op een andere mannier te doen? en/of hoe kan je in (denk apache) die toegang dan wel geven.

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Kan niet. Je kunt de file() functie gebruiken om de output van het script op de andere server in te lezen.

Rustacean


Verwijderd

Topicstarter
Op maandag 22 april 2002 20:59 schreef Manuzhai het volgende:
Kan niet. Je kunt de file() functie gebruiken om de output van het script op de andere server in te lezen.
ok, dan moet het op die manier. Hoe lees ik het dan uit van dit script?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php $pagefile = "c:\\pagefile.sys"; 
     clearstatcache(); 
     $uptime = (time() - filemtime($pagefile));?>
<?php $days = floor($uptime / (24*3600)); 
     $uptime = $uptime - ($days * (24*3600)); 
     $hours = floor($uptime / (3600)); 
     $uptime = $uptime - ($hours * (3600)); 
     $minutes = floor($uptime /(60)); 
     $uptime = $uptime - ($minutes * 60); 
     $seconds = $uptime; 
     if (!eregi("[0-9]{2}", $seconds)){     $seconds = "0".$seconds; 
     }    if (!eregi("[0-9]{2}", $minutes)){        $minutes = "0".$minutes; 
     }    if (!eregi("[0-9]{2}", $hours)){      $hours = "0".$hours; 
     }    if($days == 1){     $days = $days." day,"; 
     }elseif($days == 0){     $days=""; 
     }else{   $days = $days." days,"; 
     }    print "<p>".$days." ".$hours.":".$minutes.":".$seconds.""; 
     clearstatcache();?>

dat staat op zijn computer...

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Iets met explode(" ") en explode(":"). RTFM.

Rustacean


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Op maandag 22 april 2002 20:59 schreef Manuzhai het volgende:
Kan niet. Je kunt de file() functie gebruiken om de output van het script op de andere server in te lezen.
Op maandag 22 april 2002 20:59 schreef php.net/include het volgende:
PHP:
1
<?/* This example assumes that www.example.com is configured to parse .php * * files and not .txt files. Also, 'Works' here means that the variables * * $foo and $bar are available within the included file.                 */// Won't work; file.txt wasn't handled by www.example.com as PHPinclude 'http://www.example.com/file.txt?foo=1&amp;bar=2';// Won't work; looks for a file named 'file.php?foo=1&amp;bar=2' on the// local filesystem.include 'file.php?foo=1&amp;bar=2';// Works.include 'http://www.example.com/file.php?foo=1&amp;bar=2';$foo = 1;$bar = 2;include 'file.txt';  // Works.include 'file.php';  // Works.?>

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
vergeet trouwens niet dat als je een script vanaf een andere server include, dat het script dan niet op die server draait maar op je eigen.

Verder zou het includen via een nfs of smb verbinding kunnen.

Voor jouw doeleind moet je echter het output gebruiken, hoe staat boven al beschreven.

Everyone complains of his memory, no one of his judgement.


  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Misschien daar (en bij jou) een tweede script draaien die alleen als output de uptime geeft, dus zonder HTML eromheen.. Dan kun je dát openen met file() in het script op de andere PC.

  • eborn
  • Registratie: April 2000
  • Laatst online: 08-09 12:50
Op maandag 22 april 2002 20:59 schreef Manuzhai het volgende:
Kan niet. Je kunt de file() functie gebruiken om de output van het script op de andere server in te lezen.
Wedden van wel? ;) Alleen natuurlijk niet de echte PHP maar alleen de output van de PHP.

  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 08-09 17:10
Op dinsdag 23 april 2002 16:36 schreef eborn het volgende:

[..]

Wedden van wel? ;) Alleen natuurlijk niet de echte PHP maar alleen de output van de PHP.
Gamma

  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Als je de oplossing gevonden hebt, post het ff kort, ik zit hier met hetzelfde probleem...

Een file op de A12 is nooit grappig...


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
Volgens mij heb ik hier een oplossing die werkt. Bij mij is de situatie zo, dat ik een aantal php bestanden heb die zgn html-snippets opleveren. Als ik deze _snippet.php include in een willekeurige php file, kan ik de content er dus vrij eenvoudig inhangen.

Onderstaande functie haalt zo'n snippet remote op. Ik kan dan dus op een willekeurige plaats in mijn html (in een php bestand) onderstaande stukje code zetten, onafhankelijk op welke webserver, zonder dat hierbij fouten optreden met includen van includefiles (snap ik dit laatste zelf nog :?)

De functie:
[?
function getRemoteSnippet($sRemoteSnippet) {
return implode ('', file ($sRemoteSnippet));
}
?]

De code in een html stukje in een php bestand:
[?=getRemoteSnippet('http://server.url:port/snippet/_snip_lastnews.php')?]

Graag commentaar op deze oplossing!

Een file op de A12 is nooit grappig...


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Zo haal je nog steeds de OUTPUT van je PHP script op, niet de code, als het PHP script tenminste op een andere server staat.

Rustacean


Verwijderd

Op dinsdag 23 april 2002 20:34 schreef MrHighStone het volgende:
Als je de oplossing gevonden hebt, post het ff kort, ik zit hier met hetzelfde probleem...
Jij ook al!

Verwijderd

In plaats van te klooien met filemtime(pagefile.sys) kun je volgens mij beter dit tooltje gebruiken:

http://www.microsoft.com/ntserver/nts/downloads/management/uptime/default.asp

...en gewoon met exec de informatie binnenhalen.
Dan krijg je er nog een hoop andere informatie gratis en voor niks bij. :)

Maar goed. Je wilt dus de output van het uptime scriptje binnenhalen. Niet het script zelf want daar heb je niks aan. Hij moet tenslotte eerst op die andere server draaien.

Als je de output van elkaar scriptjes wilt gebruiken zou ik gewoon met een fsockopen een normale GET doen. Op die manier kun je ook beter testen of de andere kant wel in de lucht is. Bij een include of require gaat php zitten wachten totdat hij in een timeout schiet.

Dus als je zoiets doet als:
PHP:
1
<?if($fp = fsockopen("123.123.123.123", 80)){    fputs($fp, "GET /uptime.php HTTP/1.0\n\n");    while (!feof($fp))    {        $content .= fgets($fp, 255);    }fclose($fp);}$code = substr($content, strpos($content, "\n\n"), 8000);?>

...dan heb je de output van het scriptje op de andere server in $code zitten.

  • Stacium
  • Registratie: Februari 2001
  • Niet online

Stacium

Perfect Molecular Chaos

je kan de uptime aan een urlletje plakken en dan met fopen de uptime uitlezen

nadeel is wel dat je dan een webserver moet draaien

It seemed like a good idea at the time


  • MrHighStone
  • Registratie: November 2001
  • Laatst online: 03-02-2023
MarcoTC: het zal aan mij liggen, maar is de door mij aangegeven optie niet minder omslachtig? Komen interessantie zaken uit deze thread naar voren.

En het is inderdaad de bedoeling om de _output_ van het php script op te halen en niet de _code_ zelf te includen (dan gaat het nl fout met includes op de andere server)

Een file op de A12 is nooit grappig...

Pagina: 1