Avatar billede 13thsky Nybegynder
09. juli 2003 - 14:13 Der er 18 kommentarer og
1 løsning

Hvorfor virker - if file_exists - ikke?

Hvorfor viker det her ikke?

<?
for ($i=1; $i<20; $i++)
{
  $filename = 'http://www.holbergsmykker.dk/test2/top.htm';
  if (file_exists($filename))
  {
  echo "hej";
  }
else
{
  echo "farvel";
}
}
?>
Avatar billede googolplex Novice
09. juli 2003 - 14:24 #1
Skriver den bare 'farvel' 20 gange ? Har du tjekket at din sti i $filename er rigtig ?
Avatar billede taskmgr Nybegynder
09. juli 2003 - 14:24 #2
http://dk2.php.net/file_exists

"Note: This function will not work on remote files as the file to be examined must be accessible via the servers filesystem."
Avatar billede googolplex Novice
09. juli 2003 - 14:25 #3
Er filen på din egen server ?
Avatar billede 13thsky Nybegynder
09. juli 2003 - 14:40 #4
Nej filen ligger på en anden server... hvad gør jeg???
Avatar billede hagbardph3 Nybegynder
09. juli 2003 - 14:45 #5
prøv is_link($filename)
Avatar billede 13thsky Nybegynder
09. juli 2003 - 14:47 #6
virker heller ikk,
hjælp....!!!
Avatar billede taskmgr Nybegynder
09. juli 2003 - 14:47 #7
$file = fopen ("http://www.holbergsmykker.dk/test2/top.htm", "r");
if (!$file) {
    echo "Fandt ikke filen";
}else{
    echo "Fandt filen";
}
Avatar billede googolplex Novice
09. juli 2003 - 14:48 #8
Ellers dette, fra PHP-manualen (der kan du læse mere):

function url_header($url) {
      $url = preg_replace('#^http:#i', '', $url);
      if (preg_match('#^//#', $url)){
              list(,,$domain, $file) = explode('/', $url, 4);
              $file = "/$file";
      } else {
              $file = $url;
              if (! preg_match('#^/#', $file)) $file = "/$file";
              $domain = $_SERVER[HTTP_HOST];
      }
      $fid = fsockopen($domain, 80);
      if (! $fid) return "Host not responding";
      fputs($fid, "HEAD $file HTTP/1.0\r\nHost: $domain\r\n\r\n");
      $head = fread($fid, 4096);
      fclose($fid);
      echo "
\n<pre>\n$head<pre>";
      return $head;
}


function url_exists($url) {
      return preg_match('#^HTTP/.*\s+200\sOK\s#i', url_header($url));
}
Avatar billede sukos Juniormester
09. juli 2003 - 15:13 #9
$fil = file("http://www.holbergsmykker.dk/test2/top.htm");
if(fil) {
........
}else{
........
}
Avatar billede fangel Nybegynder
09. juli 2003 - 16:27 #10
sukos => med dit trick vil der altid blive returneret sandt (med mindre domaine ikke findes), man skal som googolplex er inde på, lige validere inputtet og tjekke for en "200 OK" (siden findes) eller en "404 Not Found" (siden findes ikke)

Morten
Avatar billede sukos Juniormester
09. juli 2003 - 16:50 #11
?
Virker da ellers her:
http://new.sukos.dk/file.php
Avatar billede fangel Nybegynder
09. juli 2003 - 16:54 #12
logisk set burde det ikke lykkedes? da den vil få en 404 side hvis siden ikke findes, og så er der jo også indhold? så jeg ved ikke hvorfor det rent faktisk virker!
Avatar billede sukos Juniormester
09. juli 2003 - 16:58 #13
Måske nok mere en opsætning i php.ini?
Avatar billede fangel Nybegynder
09. juli 2003 - 16:59 #14
kan ske...
Avatar billede 13thsky Nybegynder
09. juli 2003 - 17:05 #15
ER ved at prøve med "TASKMAGR"'s forslag... Men når den prøver at tilgå en fil som ikke findes, laver den fejl i scriptet, dvs der kommer ikke til at stå "Fandt ikke filen"...

Hjælp TASKMGR....
Avatar billede sukos Juniormester
09. juli 2003 - 17:10 #16
Virker da ellers på mit link? Med @ foran fopen :O)
Avatar billede 13thsky Nybegynder
09. juli 2003 - 18:02 #17
Det virker fjong nu, skal du ha nogle point SUKOS? - et svar....

//13th Sky
Avatar billede sukos Juniormester
09. juli 2003 - 18:11 #18
jah, hvorfor ik'? :O)
Avatar billede 13thsky Nybegynder
09. juli 2003 - 18:52 #19
tnx

//13th Sky
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