Meerdere bestanden includen

Door Roel -, 15 jaar geleden, 9.596x bekeken

Ik heb hier een kleine snippet waarmee je in één keer meerdere bestanden kunt uploaden. Het werkt erg simpel, gewoon zoals een normale include ook doet.

Zo roep je hem aan:
include_m('config.php', 'auth.php', 'header.inc.php');

Gesponsorde koppelingen

PHP script bestanden

  1. include_m.php

 

Er zijn 17 reacties op 'Snippets'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Maarten PHP
Maarten PHP
15 jaar geleden
 
0 +1 -0 -1
dit kan iedereen wel maken. Voegt niks toe
Roel -
Roel -
15 jaar geleden
 
0 +1 -1 -1
Het heet niet voor niks een snippet.
Maarten PHP
Maarten PHP
15 jaar geleden
 
0 +1 -0 -1
Da's waar maar dit kan toch iedereen maken of niet soms :p
Wouter J
Wouter J
15 jaar geleden
 
0 +1 -0 -1
Maar vind jij dat dit iets toevoegt? Vind jij dat dit echt iets is wat het PHP programmeren verbeterd?
Roel -
Roel -
15 jaar geleden
 
0 +1 -0 -1
Ik zie wel eens dat mensen een hele lijst include-bestanden hebben. Ik kan me voorstellen dat je er dan iets aan hebt.
- Mark -
- Mark -
15 jaar geleden
 
Het heeft op deze manier inderdaad weinig toegevoegde waarde.

Tevens is het niet veel meer werk om elke include gewoon uit te typen.

anyway.

- () zijn niet nodig bij include.
- Waarom het niet zo maken dat je de functie geen array hoeft te voeren? include_m('config.php', 'auth.php', 'header.inc.php'); is korter dan wat je nu hebt.
- controleren of het bestand bestaat is misschien ook handig.

En dan hebben we het nog niet over include en require door elkaar gebruiken.
Roel -
Roel -
15 jaar geleden
 
0 +1 -0 -1
Hoe wil je punt 2 doorvoeren? 1 is aangepast trouwens.
Vincent Huisman
Vincent Huisman
15 jaar geleden
 
0 +1 -0 -1
gewoon explode?
- Mark -
- Mark -
15 jaar geleden
 
0 +1 -0 -1
Nee niet met explode, nergens voor nodig. Je kunt de parameters die je tijdens het aanroepen van de functie meegeeft gewoon opvragen. Zie bovenstaande link.
Roel -
Roel -
15 jaar geleden
 
0 +1 -0 -1
Thx, ik kende die functie niet. Ook doorgevoerd.
Jelmer -
Jelmer -
15 jaar geleden
 
0 +1 -0 -1
Vergeet niet dat je nu wel code include in de scope van de functie, en niet van het document waar je je functie aanroept.

Voorbeeld: a.php bevat
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $x = 4; ?>

Als je nu a.php via jou include_m inlaadt, is binnen die functie $x plots 4, maar daarbuiten niet. Zou ik gewoon 'include 'a.php';' doen, dan krijg ik wel toegang tot $x. Maar ook de andere kant op. Het bestand dat je include kan niet bij de variabelen die je in de scope van het bestand waar je hem aanroept declareert.

(Ik zou dit trouwens eerder een voordeel dan een nadeel noemen, zo weet je zeker dat variabelen niet door elkaar lopen. Naja, tenzij je global gebruikt.)
Roel -
Roel -
15 jaar geleden
 
0 +1 -0 -1
Dit wist ik niet. Dus eigenlijk is dit script gewoon... nutteloos?
Maarten PHP
Maarten PHP
15 jaar geleden
 
0 +1 -0 -1
ik vind van wel.

Het is alleen handig als je bestanden wil includen die niks met elkaar te maken hebben en/of je BV 10 includes in een lijn wilt hebben.
Pieter van Linschoten
Pieter van Linschoten
15 jaar geleden
 
0 +1 -0 -1
Ik zou dan eerder zo iets maken, om het makkelijker te maken (Folder includen)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?
$_root
= '/var/virtualhosts/jouwwebsite_root/';
$_path = 'http://www.jouwwebsite.nl/';

function
finclude($dir,$mode=false){
    $br = '\n';
    global $_root;
    global $_path;
    if(is_dir($dir))
    {

        $entities = scandir($_root.$dir);
        # Geen . en ..
        unset($entities[0],$entities[1]);
        foreach($entities as $entity)
        {

            if(is_dir($_root.$dir.'/'.$entity))
            {

                # -R: Recursive include
                if($mode == '-R')
                {

                    #print 'include:'.$dir.'/'.$entity.'<br />';
                    finclude($dir.'/'.$entity,'-R');
                }
            }

            elseif(file_exists($_root.$dir.'/'.$entity))
            {

                #print 'include:'.$dir.'/'.$entity.'<br />';
                switch(end(explode('.',$entity)))
                {
                    case
'php':
                        require $_root.$dir.'/'.$entity;
                    break;
                    case
'js':
                        print '<script type='text/javascript' src=''.$_path.$dir.'/'.$entity.''></script>'.$br;
                    break;
                    case
'css':
                        print '<link type='text/css' rel='stylesheet' href=''.$_path.$dir.'/'.$entity.'' />'.$br;
                    break;
                }
            }
        }
    }
}

?>


edit:

Ligt het aan mij, of maakt die UBB parser hier van mijn ' (dubbele quote) een ' (enkele quote) in de onderste regels. :s
Erwin Renkema
Erwin Renkema
15 jaar geleden
 
0 +1 -0 -1
Voor mensen die voor elk minuscuul stukje prestatie gaan zal deze snippet veel zwaarder en dus trager zijn dan de gewone methode door alle includes onder elkaar te zetten.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Kees Schepers
kees Schepers
15 jaar geleden
 
0 +1 -0 -1
Ik snap de goede bedoelingen van de schrijver maar eigenlijk wel jammer dat er zulke matige toevoegingen worden gedaan in de script-lib.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. include_m.php

Labels

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.