Versio

PHP Error Handling

Overzicht Reageren

PHP Scripter

PHP Scripter

12/08/2011 05:28:49
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
require LIBARY . DS . 'MessageHandler' . PHP_SUFFIX;
require LIBARY . DS . 'Config' . PHP_SUFFIX;
require LIBARY . DS . 'Language' . PHP_SUFFIX;

$Voorbeeld = true;
?>


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
 
PHP hulp

PHP hulp

25/05/2012 10:21:43
Gesponsorde koppelingen:
 
Kees Schepers
Moderator

kees Schepers

12/08/2011 08:48:13
Quote Anchor link
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.
 
- SanThe -

- SanThe -

12/08/2011 09:03:34
Quote Anchor link
Wat heeft het voor nut om een $var te vullen als de require() mislukt? PHP zal namelijk zelf het hele script stoppen.
 
- Aar -

- Aar -

12/08/2011 09:13:24
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function include_exists($path) {
    if (file_exists($path)) {
        require($path);
    }
else {
        $cant_include = true;    
    }
}

?>
 
Fabian M

Fabian M

12/08/2011 12:50:48
Quote Anchor link
- 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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
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.
 
Kees Schepers
Moderator

kees Schepers

12/08/2011 13:26:05
Quote Anchor link
- 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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
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?
 
- Aar -

- Aar -

12/08/2011 13:45:11
Quote Anchor link
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 -
 
PHP Scripter

PHP Scripter

12/08/2011 15:15:47
Quote Anchor link
Aar bedankt. Dat is inderdaad een leuke oplossing!
 
Kut Piemel

Kut Piemel

12/08/2011 17:47:40
Quote Anchor link
LIBARY moet LIBRARY zijn :)
 
PHP Scripter

PHP Scripter

12/08/2011 17:52:16
Quote Anchor link
Maarten, i know ;)
 



Overzicht Reageren

Get Adobe Flash player