Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja - problem ..if (file_exist ...
Forum PHP.pl > Forum > Przedszkole
renderman
Witam,

Mam taki zapis który powtarza się na stronie bardzo często


  1. <?php
  2. $zmiennaLokalna = JAKIS_TAM_MODUL;
  3. if ( file_exists($zmiennaLokalna) && is_readable($zmiennaLokalna)  )  {include($zmiennaLokalna);}
  4. else
  5. echo  'Nie załadowano modułu: $zmiennaLokalna' ;
  6. ?>


W configu zdefiniowałem sobie jakieś tam już stałe
JAKIS_TAM_MODUL,
JAKIS_TAM_MODUL_2 ,
itd.

jak można teraz zapisać funkcje by nie przepisywać po 100 razy if (file_exist .... przy każdym takim include na stronie? nie mogę sobie poradzić z tym od strony składni... Zakładam że chciałbym funkcje wyrzucić do pliku ładowanego na poczatku index.php...
#luq
Moje pytanie - po jakiego grzyba zakładasz drugi temat dotyczący tego samego problemu jak już w pierwszym otrzymałeś pomoc http://forum.php.pl/index.php?showtopic=11...mp;#entry598659
marcio
  1. <?php
  2. function LoadModule($module) {
  3.  
  4. if (file_exists($module) && is_readable($module))  include_once(basename($module));
  5.  
  6.  else echo('Nie załadowano modułu: '.$module);
  7.  
  8. }
  9. ?>

Cos na ten wzor jesli cie dobrze zrozumialem chyba ze dane w modulach masz w jakiejs zmiennej do zapisujesz jej do jakies w tej funckji i potem zwracasz za pomoca return.
renderman
Wiem że teraz dane ktore otrzymam to bedą stałe wyciągane albo z pliku albo z bazy i rzecz nie tyczy się array nie define tylko samej funkcji - ktorą chciałbym zrozumieć. Nie czepiaj się prosze bo takimi przytykami tylko zniechęcasz do pytania się na tym forum.
marcio
To mozesz zrob odpowiednie pytanie i/lyb przyklad bo ja nie rozumiem o co ci chodzi.
renderman
Ok najprościej jak się da smile.gif

  1. <?php
  2. define('MODUL_1', '/plik1.inc.php');
  3.  define('MODUL_5', '/plik2.inc.php');
  4.  
  5.  
  6. function LoadModule($module) {
  7.  
  8. if (file_exists($module) && is_readable($module))  include_once(basename($module));
  9.  
  10.  else echo('Nie załadowano modułu: '.$module);
  11.  
  12.   return //$module questionmark.gif? ;
  13.  }
  14. ?>


w index.php
  1. <?php
  2. $LoadModule = MODUL_1; //?
  3. $LoadModule = MODUL_5; //?
  4. ?>


coś na ten deseń..
marcio
Lol czy ty wiesz co robisz z tego co widze to nawet nie wiesz jak sie wlasne funkcje w php wywoluje to raz a dwa to skad mam wiedziec jak wyglada twoj przykladowy modul zarazem nie wiem jak chcesz go ladowac masz tam echo(),zapis do zmiennych,szablony.

Najpierw naucz sie podstaw php a potem mysl o modulach.
renderman
Bardzo śmieszne...

Mam już coś takiego i to dziala.. tongue.gif
  1. <?php
  2. function sprawdz($plik) {
  3.    if ( file_exists($plik) && is_readable($plik)  )  {include($plik);}
  4.    else
  5.    echo  'Nie załadowano modułu: '.$plik;
  6.    return $plik;  
  7.  }
  8. ?>

w index.php

  1. <?php
  2. $wynik = sprawdz(MODUL_STOPKA1);
  3. ?>
#luq
Może i zniechęcam, ale zniechęcam człowieka który nawet nie umie zanalizować wypowiedzi ludzi którzy chcą mu pomóc (chodzi mi tu o Twój pierwszy temat).

Cytat
Najpierw naucz sie podstaw php a potem mysl o modulach.
Cytat
Bardzo śmieszne...



Masz rację to ni jest śmieszne, po tym co tu piszesz to się ociera o żałosność. Zrozum po prostu nie masz dostatecznej wiedzy o programowaniu, tu już nie chodzi o sam język a umiejętność myślenia i składania faktów.

W jakim celu używasz konstrukcji
  1. <?php
  2. return $plik;
  3. ?>


Poza tym, funkcje nie powinny niczego wypisywać ihmo.

  1. <?php
  2. // zaladuj modul
  3.    function loadModule( $file ){
  4.        if ( file_exists( $file ) && is_readable( $file )  ) {
  5.            include( $file );
  6.            return true;
  7.        }
  8.        else{
  9.            return false;
  10.        }
  11.    }
  12.  
  13.    function loadModuleArr( $aModule ){
  14.        foreach( $aModule as $key ){
  15.            if( !loadModule( $key ) ){
  16.                echo 'Nie załadowano pliku: '.$key;
  17.            }
  18.        }
  19.    }
  20.    
  21.    loadModuleArr( array( MOD_1, MOD_2, MOD_3 ) );
  22. ?>


Najpierw trzeba się nauczyć programować.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.