Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 21:47 Der er 14 kommentarer og
1 løsning

fejl ved include

Når man prøver at include en fil der ikke kan findes får man en fejlmeddelelse:

Warning: Unable to access pages/filderikkefindes.php3 in /index.php3 on line 144

Warning: Failed opening 'pages/filderikkefindes.php3' for inclusion (include_path='.:/usr/local/lib/php') in index.php3 on line 144


Mit spørsmål er om der er en metode hvorpå man kan include en alternativ fil hvis den første ikke findes. FX: sidenfindesikke.php3

Faktisk lidt som den klassiske 404-error bare ved include.
Avatar billede fangel Nybegynder
20. juli 2003 - 21:48 #1
tjo... man burde vel kunne sige noget i stil med

if(include("testfil.php"))
else include("jeg_findea_i_hvert_fald.php");

men jeg skal lige tjekke hvad include returnere ved fejl...

Morten
Avatar billede exp Juniormester
20. juli 2003 - 21:52 #2
kan det ikke bare laves med if(file_exists) ?
Avatar billede fangel Nybegynder
20. juli 2003 - 21:52 #3
tja... næsten... ;)

---
$test = include("fil_der_maaske_kan_inkluderes.php");
if($test == 1){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

burde virke!

Morten
Avatar billede fangel Nybegynder
20. juli 2003 - 21:53 #4
exp => nu skal du ikke være kedelig ;) jo, du har ret, det kan det... ;)

---
if(file_exist("fil_der_maaske_kan_inkluderes.php")){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

Morten
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 21:54 #5
I så fald, hvordan bruges den?

Umiddelbart havde jeg regnet med at kunne finde svaret på dette spørsmål under include i php-manualen hvilket dog ikke var tilfældet. Dette undre mig lidt, da det må være en funktion man kunne drage en del nytte af.
Avatar billede exp Juniormester
20. juli 2003 - 21:55 #6
Er det ikke tipsen der hele tiden siger:
"Hvorfor genopfinde den dybe tallerken?"

;-)
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 21:55 #7
skriv et svar, så deler jeg pointne.
Avatar billede fangel Nybegynder
20. juli 2003 - 21:57 #8
svaa'r

og jeg fandt et hint her:

---
Example 12-7. include() and the return() statement

return.php
<?php

$var = 'PHP';

return $var;

?>

noreturn.php
<?php

$var = 'PHP';

?>

testreturns.php
<?php

$foo = include 'return.php';

echo $foo; // prints 'PHP'

$bar = include 'noreturn.php';

echo $bar; // prints 1

?>

$bar is the value 1 because the include was successful. Notice the difference between the above examples. The first uses return() within the included file while the other does not. A few other ways to "include" files into variables are with fopen(), file() or by using include() along with Output Control Functions.
---

her kan man se at hvis man laver

$var = include("fil.php");

bliver $var == 1, da "fil.php" findes... ;)

Morten
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 22:05 #9
Dea_pg -> Din løsning:

---
if(file_exist("fil_der_maaske_kan_inkluderes.php")){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

giver følgende fejl: Fatal error: Call to undefined function: file_exist()
Avatar billede fangel Nybegynder
20. juli 2003 - 22:09 #10
sorry, kan ikke huske alt..

den hedder

file_exists()

Morten
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 22:09 #11
Jeg kan heller ikke få denne til at virke:
---
$test = include("fil_der_maaske_kan_inkluderes.php");
if($test == 1){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---


Den inkludere rigtigt nok "fil_der_i_hvert_fald_findes.php" hvis den første ikke findes, problemet er bare at linien:

$test = include("fil_der_maaske_kan_inkluderes.php");

også udløser at den forsøger at include filen som ikke er der og derfor giver en includefejl før den overhovedet når til "fil_der_i_hvert_fald_findes.php"

Hvad så?
Avatar billede fangel Nybegynder
20. juli 2003 - 22:11 #12
$test = @inc...

eller

if(inc... == 1)

Morten
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 22:13 #13
gider du lige skrive hele den samlede kode?

file_exists() -> nu virker den.
Avatar billede fangel Nybegynder
20. juli 2003 - 22:18 #14
enten:

---
$test = @include("fil_der_maaske_kan_inkluderes.php");
if($test == 1){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

eller

---
if(include("fil_der_maaske_kan_inkluderes.php"); == 1){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

muligt at denne også laver fejl, men løses igen med @-tricket ;)

eller den sidste file_exists

---
if(file_exists("fil_der_maaske_kan_inkluderes.php")){
  include("fil_der_maaske_kan_inkluderes.php");
}
else{
  include("fil_der_i_hvert_fald_findes.php");
}
---

Morten
Avatar billede hairboy1234 Nybegynder
20. juli 2003 - 22:19 #15
Jeg prøver dem lige og hvis ikke andet bruger jeg den sidste. Tusind tak for hjælpen.
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