[php] extern html bestand importeren

Pagina: 1
Acties:

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
Hallo allemaal,

Ik ben bezig met een phpscript, maar ik heb een probleem... Ik wil een extern (van een andere server) html bestand (waar alleen plain tekst in staat) in mijn php file krijgen, maar dit wil niet werken. Ik heb require() en include geprobeerd maar deze werken niet bij externe files.

Weet iemand een functie voor php (die werkt met php onder w2k) die een extern bestand kan importeren?

Hopelijk bedankt, Wietse

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
neem er eens een handleiding bij :)

www.php.net/fopen

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
en ik krijg m niet aan de praat :'( ook niet met fopen()

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

bedoel je met extern op een andere server?

oogjes open, snaveltjes dicht


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
nou, ik draai shoutcast en die genereert zelf het bestand 7.html met daarin wat gegevens of de server actief is, wel nummer ik draai. Dat ga ik strippen (werkt gelukkig wel). Omdat Schoutcast het zelf genereert kan ik het niet zo van me harddisk trekken. Ik moet het dus binnenhalen vanaf http://mijnserver:8000/7.html

  • SillyJW
  • Registratie: Januari 2002
  • Laatst online: 22-04 18:09

SillyJW

der Gemutlichkeit

wietse.cc schreef op 29 augustus 2002 @ 22:25:
[...]Ik wil een extern (van een andere server) [...]
Don Facundo schreef op 29 augustus 2002 @ 22:41:
bedoel je met extern op een andere server?
|:( ..... :)

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
zou het misschien kunnen komen doordat fopen niet accepteert dat de file op poort 8000 draait?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 31-08 15:46

mulder

ik spuug op het trottoir

Ik ben echt goed bezig vandaag.

Maar dan is fsockopen() misschien dan iets...

oogjes open, snaveltjes dicht


  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
of probeer file()

PHP:
1
2
3
4
5
6
7
8
$file = @file ('http://blaat:8000/7.html');

while (list ($i, $line) = @each ($file))
{

echo $line;

}


zo ook moeten werken :)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • Norckon
  • Registratie: September 2000
  • Laatst online: 30-08 21:27
PHP:
1
2
3
4
5
$fp = file("http://www.server.nl/file.htm");

foreach($fp as $line) {
  echo $line;
}


moet werken d8 ik

edit:

grr, te laat..

[ Voor 0% gewijzigd door Norckon op 29-08-2002 22:52 . Reden: te laat :/ ]


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
de output van fsockopen() is "Resource id #1"... misschien dat shoutcast het niet accepteert...

Verwijderd

wietse.cc schreef op 29 augustus 2002 @ 22:51:
de output van fsockopen() is "Resource id #1"... misschien dat shoutcast het niet accepteert...
lol >:)
je krijgt een false terug als ie het niet doet. Nu jij weer :)

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
nou kijken jullie maar, ik heb inmiddels best veel geprobeerd, het is http://62.251.88.200:8000/7.html in je browser gaat het goed, niet via telnet of fone(), require(), include(), fopen(), fsockopen()...

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
de melding luidt:

ICY 404 Resource Not Found icy-notice1:
SHOUTcast Distributed Network Audio Server/win32 v1.8.9
icy-notice2:The resource requested was not found

maar het bestand bestaat toch echt...

  • Norckon
  • Registratie: September 2000
  • Laatst online: 30-08 21:27
Geef je een volledige header mee, zodat dat ding ook echt denkt dat 't een browser is die de request doet?

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
ja, ook de code op php.net bij fsockopen() geprobeerd maar zelfs die accepteert hij niet

  • nrg
  • Registratie: April 2001
  • Laatst online: 18:09

nrg

PHP:
1
2
3
4
5
6
7
8
9
10
$fp = fsockopen ("[ip]", 8000, $errno, $errstr, 30);
if(!$fp) {
    echo("$errstr ($errno)<br>\n");
} else {
    fputs($fp, "GET /7.html\r\n\r\n");
    while(!feof($fp)) {
        echo(fgets($fp,128));
    }
    fclose ($fp);
}


De 404 krijg je met dit script.
Ook met complete HTML header zoals staat op http://www.php.net/fsockopen krijgen we dezelfde output..

* nrg poogt mee te helpen via IM

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
de socket geeft inderdaad

code:
1
2
3
4
5
ICY 404 Resource Not Found 
icy-notice1:
SHOUTcast Distributed Network Audio Server/win32 v1.8.9

icy-notice2:The resource requested was not found


terug...

best wel vaag :? omdat de gewone url het wel doet

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
ze hebben dat wel lekker beveiligd bij shoutcast, terwijl eigenlijk de functie van dat bestand zou zijn dat je het met een script kon verwerken... niet leuk.

weer zo'n echt vaag probleem, waar toch een oplozzing voor zou moeten zijn denk ik dan...

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
code:
1
2
GET /7.html HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)


Werkt wel....

Een User-Agent is verplicht en moet ook nog iets geldigs zijn :(

code:
1
2
GET /7.html HTTP/1.1
User-Agent: Mozilla

Werkt ook. Als er maar Mozilla als User-Agent staat gaat het goed :+

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
ik weet niet hoor, maar als ik dat gebruik krijg ik

ICY 404 Resource Not Found icy-notice1:
SHOUTcast Distributed Network Audio Server/win32 v1.8.9
icy-notice2:The resource requested was not found


werkt bij mij (of ik doe wat verkeerd) dus niet...

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Ik heb het alleen getest vanuit Telnet. Ik weet niet zo 123 hoe je dit binnen php kan fixen...

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
fputs($fp, "GET /7.html User-Agent: Mozilla"); wil toch echt niet werken, wat doe jij dan anders dan ik???

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
op die manier
dan ga ik daar maar eens naar zoeken...

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
En als je er het volgende van maakt:
PHP:
1
fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla");

Doet ie dan wat?

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
ook niet... ik zit nog te kijken of er achter mozilla niet nog het een en ander moet aan \r en \n

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
fputs($fp, "GET /7.html User-Agent: Mozilla\r\n\r\n");
wil in ieder geval niet

fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla");
duurt heel lang en de output is niets...

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
Sorry, het moet denk ik het volgende zijn:
PHP:
1
fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n");

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
geweldig! bedankt! nog een ereg_replace voor "HTTP/1.0 200 OK content-type:text/html " naar "" en dan is het klaar! Bedankt allemaal!

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
:) Het duurt even,maar dan heb je ook wat :Y)

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
absoluut :)

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
en toen gaf

$fp = fsockopen ("62.251.88.200", 8000, $errno, $errstr, 30);
if(!$fp) {
echo("$errstr ($errno)<br>\n");
} else {
fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n");
while(!feof($fp)) {

$output = fgets($fp,128);
list ($a1, $active, $c2, $c3, $c4, $c5, $song) = split ('[,]', $output);

echo("
Radio is: $active <BR>
Song playing: $song <BR>
");
}
fclose ($fp);
}


een hele rare output: http://62.251.88.200/radio/...

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
hmmm... dat zit nog niet helemaal goed dan...

btw explode is sneller dan split

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
goeie vraag, het lijkt wel een loop te worden ofzo...

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
PHP:
1
2
3
4
5
$output = explode(",", fgets($fp,128)); 
if ($output[1] == 1) { $status = "Playing"; }
else { $status = "Not playing"; }
echo "Radio is: $status <BR>";
if ($output[1]) { echo "Song playing: $output[6] <BR>"; }


misschien error reporting ff afzetten
ook niet echt netjes, maar volgens mij scheelt dat foutmeldingen ;)

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
dat scheelt wel foutmeldingen, maar dan nog krijg ik eerst 3x radio is uit, en dan de laatste keer de juiste status...

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
$output = explode(",", fgets($fp,128));
echo "Song playing: $output[6] <BR>";

geeft:
(1)Warning: Undefined index: 6 in c:\webserver\phpdev\www\radio\index.php on line 15
Song playing:

(2)Warning: Undefined index: 6 in c:\webserver\phpdev\www\radio\index.php on line 15
Song playing:

(3)Warning: Undefined index: 6 in c:\webserver\phpdev\www\radio\index.php on line 15
Song playing:
(4)Song playing: Avril Lavigne - My World


de 4e keer gaat het goed...

  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
tot zover bedankt, ik ga morgen verder ;)

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
ik heb iets wat werkt, alleen moet je dan wel in je 7.html de 2e operator op 1 laten zetten als je radio speelt. (dat was de active-variable had ik vernomen)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
$fp = fsockopen ("62.251.88.200", 8000, $errno, $errstr, 30); 
if(!$fp) { 
echo("$errstr ($errno)<br>\n"); 
} else { 
fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n"); 
while(!feof($fp)) { 

$output[] = explode(",", fgets($fp,128));

if ($output[3][1] == 1) { $status[] = "playing ". $output[3][6]; }
else { $status[] = "not playing"; }
if ($status[3]) { echo "Radio is ". $status[3]; }

  }
}
?>

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
klopt, die 7.html wordt automatisch gegenereerd door ShoutCast en die zet het 2e cijfer op 1 als de radio speelt en op 0 als hij uit is.

Je script is trouwens geweldig, alleen hij geeft nog wel 6x een "Warning: Undefined offset: 3 in c:\webserver\phpdev\www\radio\index.php on line 12"en line 14"...

Hij zegt wel meerdere keren over dezelfde regel dat offset 3 niet bestaat, maar als laatste echo't hij offset 3 wel...

Weet iemand nog een oplossing?

(ik weet dat error_reporting(0); een hele hhop scheelt en het dan dus over is, het script dus mooi werkt, maar isser geen andere manier?)

  • Sjab-X
  • Registratie: September 2001
  • Laatst online: 06-08 11:45
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$fp = fsockopen ("62.251.88.200", 8000, $errno, $errstr, 30);  
if(!$fp) {  
 echo("$errstr ($errno)<br>\n");  
} else {  
 fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n");  
 while(!feof($fp)) {  

 $output[] = explode(",", fgets($fp,128)); 

 if (ISSET($output[3][1])) {
  if ($output[3][1] == 1) { $status[] = "playing ". $output[3][6]; } 
  else { $status[] = "not playing"; } 
  if (ISSET($status[3])) {
   if ($status[3]) { echo "Radio is ". $status[3]; } 
  }
 }
}

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 02-06 23:18
[edit]

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
error_reporting(E_ALL);
$fp = fsockopen ("62.251.88.200", 8000, $errno, $errstr, 30);   

if(!$fp)
{   
 echo("$errstr ($errno)<br>\n");   
}

else
{   
 fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n");   
 $i = 0;
 while(!feof($fp))
 {   

    $output[$i] = explode(",", fgets($fp, 128));  

    if (isset($output[3][2]) && $output[3][2] == "1" && $i == "3")
    { 
      echo "Radio is playing ". $output[3][6];
    }
 
    else
    {
      if ($i == "3")
      {
        echo "Radio is not playing";
      }
    }
 
  $i++;

 } 
}
?> 

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


  • wietse.cc
  • Registratie: Januari 2002
  • Laatst online: 08-12-2023
Die laaste is perfect op 2 dingen na:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<? 
error_reporting(E_ALL); 
$fp = fsockopen ("62.251.88.200", 8000, $errno, $errstr, 30);    

if(!$fp) 
{    
 echo("$errstr ($errno)<br>\n");    
} 

else 
{    
 fputs($fp, "GET /7.html\r\nUser-Agent: Mozilla\r\n\r\n");    
 $i = 0; 
 while(!feof($fp)) 
 {    

    $output[$i] = explode(",", fgets($fp, 128));   

    if (isset($output[3][1]) && $output[3][1] == "1" && $i == "3") 
    {  
      echo "Radio is playing ". $output[3][6]; 
    } 

    else 
    { 
      if ($i == "3") 
      { 
        echo "Radio is not playing"; 
      } 
    } 

  $i++; 

 }  
} 
?> 


Zo zou de code moeten werken (draait bij mij in ieder geval op deze manier)

Iedereen bedankt voor z'n hulp!!!
Pagina: 1