Avatar billede learner Praktikant
31. oktober 2006 - 16:54 Der er 18 kommentarer og
1 løsning

file() virker ikke på 1go, kan man gøre noget ved det?

Jeg benytter file("http://andet-domaene.dk") i min php fil

jeg får denne fejl:

Warning: file(): URL file-access is disabled in the server configuration in /data/cluster/free1go/b/a/www.minside.1go.dk/index.php on line 10

Warning: file(http://sub.minside.1go.dk.billige-mobiler.dk/): failed to open stream: no suitable wrapper could be found in /data/cluster/free1go/b/a/www.minside.1go.dk/index.php on line 10

kan jeg få det til at virke?
Avatar billede zynzz Praktikant
31. oktober 2006 - 17:12 #1
chmod ?
Avatar billede jakobdo Ekspert
31. oktober 2006 - 18:11 #2
Prøv file_get_contents() måske den kan hjælpe dig.
Avatar billede learner Praktikant
31. oktober 2006 - 19:35 #3
næh, desværre ikke... :o)

har lige prøvet file(), file_get_contents() og readfile()
Ingen af dem virker.

Flere muligheder?
Avatar billede jakobdo Ekspert
31. oktober 2006 - 20:13 #4
Du kan bruge denne klasse: http://www.phpclasses.org/httpclient
Avatar billede jakobdo Ekspert
31. oktober 2006 - 20:14 #5
Her har jeg forsøgt at lege lidt med fsockopen()
http://jakobdo.1go.dk/
Den kan du måske også nøjes med at modificere.
Avatar billede learner Praktikant
31. oktober 2006 - 22:02 #6
hvordan ser den php fil ud?
Avatar billede zynzz Praktikant
31. oktober 2006 - 22:15 #7
Du må undskylde at jeg har overset hvad du har skrevet, jeg må have sovet hvor jeg skrev det :P, men det som jakobdo skriver virker..

http://dk.php.net/manual/da/function.fsockopen.php

Du kan prøve med eksempel 1
Avatar billede jakobdo Ekspert
31. oktober 2006 - 22:23 #8
Kode i mit eksempel er netop eksempel 1 fra det link zynzz har postet! :o)
Avatar billede learner Praktikant
31. oktober 2006 - 22:36 #9
jeg går ud fra at det er denne kode:

$fp = fsockopen("www.min-anden-side.dk", 80, $errno, $errstr, 30);
if (!$fp) {
  echo "$errstr ($errno)<br />\n";
} else {
  $out = "GET / HTTP/1.1\r\n";
  $out .= "Host: www.min-anden-side.dk\r\n";
  $out .= "Connection: Close\r\n\r\n";

  fwrite($fp, $out);
  while (!feof($fp)) {
      echo fgets($fp, 128);
  }
  fclose($fp);
}

jeg får denne fejl:
Avatar billede learner Praktikant
31. oktober 2006 - 22:37 #10
ups her er fejlen:
Warning: fsockopen() [function.fsockopen]: php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/mobilew/public_html/index.php on line 11
Avatar billede jakobdo Ekspert
01. november 2006 - 08:47 #11
Jeg brugte denne kode:

<?php

$file = 'http://www.gnu.org/fun/jokes/programmer.txt';

$fp = fsockopen("www.eksperten.dk", 80, $errno, $errstr, 30);
if (!$fp)
{
    echo "$errstr ($errno)<br />\n";
}
else
{
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.eksperten.dk\r\n";
    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);
    while (!feof($fp))
    {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

?>
Avatar billede learner Praktikant
01. november 2006 - 13:29 #12
hvorfor disse linier:
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: www.eksperten.dk\r\n";
$out .= "Connection: Close\r\n\r\n";

Og hvad er det egentligt der sker?
Avatar billede learner Praktikant
01. november 2006 - 20:09 #13
nu har jeg fået lavet så det virker. Men post og get virker desværre ik. Ved ik om jeg kan få get til at virke.

jeg har gjort således:

$fp = fsockopen("www.eksperten.dk", 80, $errno, $errstr, 30);
if ($fp){
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.eksperten.dk\r\n";
    $out .= "Connection: Close\r\n\r\n";
   
    fwrite($fp, $out);
    while (!feof($fp)){
        $jowjow .= fgets($fp, 128);
    }
    fclose($fp); 
    list($blahblah,$string) = explode("<!DOCTYPE",$jowjow);
    list($final_string,$blahblah) = explode("</html>",$string);
    echo "<!DOCTYPE".$final_string;
}

Den skal selfølgelig tilpasses til den side der skal vises. Det gøres ved at rette "<!DOCTYPE til det første siden skal indeholde. og rette </html> til det sidste der skal vises.

Jeg modtager gerne kritik :o) eller rettelser
for jeg har sikkert ikke brugt de hurtigste løsninger.
Men det virker :o)
Avatar billede learner Praktikant
01. november 2006 - 23:01 #14
hmmm jeg har læst at fopen() er hurtigere end fsockopen()
har også læst på samme side om nnoget der hedder cURL

her fandt jeg det:
http://dk.php.net/fopen
Avatar billede learner Praktikant
02. november 2006 - 01:13 #15
cURL er out of question... længere historie

Men fopen virker. jeg gør således:
$dataFile = fopen("http://www.andet-dom.dk".$_SERVER["REQUEST_URI"], "r") ;
if ($dataFile){
    while (!feof($dataFile)){
        $buffer = fgets($dataFile, 4096);
        echo $buffer;
    }
    fclose($dataFile);
}

desværre virker fopen ikke ved 1go, men ved nogle andre..
Kan man lave et check om fopen virker og så bruge fsockopen hvis fopen ik virker?
if (fopen virker){}else{}

Der er dog en forskel. fopen laver ikke fejl i html koden.
det gør fsockopen derimod. enkelte steder forekommer der underlige fejl (sjældent dog) og der er som regel et nummer som pludselig forekommer midt i det hele.
Nogen der kan forklare dette?
Avatar billede jakobdo Ekspert
02. november 2006 - 07:58 #16
Du kan godt tjekke om fopen virker jo.
$dataFile = @fopen("http://www.andet-dom.dk".$_SERVER["REQUEST_URI"], "r") ;
if ($dataFile)
{
}
else
{
fsocopen(...);
}
Avatar billede learner Praktikant
02. november 2006 - 14:23 #17
Kanon :o)

Tak

Smid venligst svar
Avatar billede jakobdo Ekspert
02. november 2006 - 18:08 #18
Svar!
Avatar billede jakobdo Ekspert
02. november 2006 - 20:08 #19
Takker for point.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester