PHP Error Handling
Ik heb bijvoorbeeld de volgende 3 bestanden die verplicht moeten worden geladen. Hoe kan ik ervoor zorgen dat als ze niet of wel geladen kunnen worden PHP een variabel maakt. De foutmelding is op zich geen probleem. Want error_reporting staat alleen aan in de debug_mode.
Dus zodra één include/require is mislukt/gelukt een variabel zetten. Ik zou dat kunnen doen met allemaal ifjes, maar kan dat netter?
Code (php)
Dus zodra één include/require is mislukt/gelukt een variabel zetten. Ik zou dat kunnen doen met allemaal ifjes, maar kan dat netter?
Gewijzigd op 12/08/2011 05:30:59 door PHP Scripter
Gesponsorde koppelingen:
Ik geloof -pin me er niet op vast- dat een error van een include te catchen is vanaf PHP 5.3.x. Dan zou je de includes dus in een try / catch blok kunnen zetten.
Met een require gaat je script sowieso kapot als het niet gelukt is.
Met een require gaat je script sowieso kapot als het niet gelukt is.
Wat heeft het voor nut om een $var te vullen als de require() mislukt? PHP zal namelijk zelf het hele script stoppen.
Een include zal alleen maar kunnen mislukken als het pad niet correct zal zijn, en als het bestand foute rechten zal hebben.
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
- Aar - op 12/08/2011 09:13:24:
Een include zal alleen maar kunnen mislukken als het pad niet correct zal zijn, en als het bestand foute rechten zal hebben.
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
De naam van die functie beschrijft niet wat er nou eigelijk gebeurt. Noem hem mijnInclude of zo.
- Aar - op 12/08/2011 09:13:24:
Een include zal alleen maar kunnen mislukken als het pad niet correct zal zijn, en als het bestand foute rechten zal hebben.
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Je kan met file_exists() bekijken of een bestand bestaat, in dat geval kan je een include uitvoeren. Je kan dit leuk in een functie wrappen:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
function include_exists($path) {
if (file_exists($path)) {
require($path);
} else {
$cant_include = true;
}
}
?>
Wat als het pad wel bestaat maar niet leesbaar is? Of geeft file_exists dan ook false terug?
Dan gebruik je i.p.v. file_exists gewoon: is_readable() (http://php.net/manual/en/function.is-readable.php)
Gewijzigd op 12/08/2011 13:45:38 door - Aar -
Aar bedankt. Dat is inderdaad een leuke oplossing!
LIBARY moet LIBRARY zijn :)
Maarten, i know ;)



