Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    sceglie directory e ricerca file .....

    Ciao a tutti o il seguente problema.
    Dopo aver fatto delle determinate operazioni in un file OPERAZ.php mi deve partire una chiamata , dove gli passo magari una variabile o array es: $var,che controlla in una determinata directory DIRS se ci sono i files , che contengono come nome parziale il valore di $var .
    Esempio:
    $var = ' pippo';
    mi deve trovare ed eseguire i file che contegono il nome pippo.
    files: pippo1, pipposette, pippo_16 sono file i cui nomi contengono la variabile con valore pippo e di conseguenza eseguirle.
    Tutto questo se possibile in php.

    Spero di essere stato chiaro.
    Chi mi può dare delle dritte?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    il controllo lo puoi fare tranquillamente leggendo il contenuto della dir e scorrendo i vari files tipo

    $dp = opendir($path);
    $var = "pippo";
    while( $resource = readdir($fp) )
    {

    if( $resource!="." && $resource!=".." && strpos($pippo , $var)!==false)
    {
    /*ho trovato il file bersaglio*/
    }

    }

    closedir($dp)

    il prob e' cos intendi per eseguire. il file e' uno script php, un exe o cosa?

  3. #3
    si il file è uno script php,che eseguirà una determinata funzione alla fine della modifica di una tabella o inserimento (di un database libreria) e ha al suo interno eseguirà delle funzioni di controllo.
    Esempio:
    DIRS (è la directory)
    i files contenuti nella directory sono:
    pippo.php
    pluto.php
    (Penso che è meglio fare più function in un file e non una function per file, sarebbe assurdo e avrei una marea di file.)
    Quindi lo strutturerei cosi:

    Il file pippo.php conterra N funzioni (in php):
    function pippo1() .......
    function pippo2() .......
    ...............................
    function pippoN() .......

    Il file pluto.php conterra N funzioni (in php):
    function pluto1() .......
    function pluto2() .......
    ...............................
    function plutoN() .......

    Come faccio a scegliere file selezionare la funzione o le funzioni relative , e di conseguenza eseguirle?
    Mi è stato consigliato di usare gli array scrivendo cosi :
    Codice PHP:
    $pippo[] = array("funzione"=>"pippo1""tabella"=>"libro""evento"=>"modifica"); 
    e poi magrai utilizzare global ma non saprei come fare,
    il tutto richiamato nel file Operaz_inserito.php e Operaz_modifica.php con la chiamta:
    Codice PHP:
    $pippo[0]["funzione"](); 
    Come posso fare ?

  4. #4
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    guarda senza andare tanto ad incasinarti la vita con ste cose usare funzioni diverse su file diversi lo puoi fare tranquillamente usando require e qlke switch.

    giusto per capirci
    Codice PHP:
    switch($valore_di_controllo)
    {

    case 
    "valore 1"
      if(
    file_exists('file_1.php')) 
      {
        require(
    'file_1.php');
        
    $ris funzione_1($param);
      }
      break;
    case 
    "valore 2"
      if(
    file_exists('file_2.php')) 
      {
        require(
    'file_2.php');
        
    $ris funzione_2($param);
      }
      break;


    ovviamente se hai un numero umano di casi possibili.

    Cosi' ti puoi tenere le funzioni su files diversi.

    Chiamare le funzioni a partire dal parsing della stringa e' dispendioso in termini di tempo, cmq e' una delle cose belle dei linguaggi interpretati come il comando eval().
    Dipede da cosa devi fare o da quante funzioni "dinamiche" devi gestire.

    Il discorso delle global e' una tecnica che ti consente di usare l'array che hai messo fuori dal blocco di funzioni come variabile globale.
    Cioe' esempio

    var = "hello";

    funzione ciao()
    {
    scrivi_a_video var;
    }
    in php nn funziona a causa dello scope(visibilita') di var. Infatti la funzione non puo' accedere alle var dichiarate fuori, per farlo devi utilizzara la funzione global per "forzare" la lettura della variabile var all'interno della funzione.

    Quindi facendo cosi' ti puoi fare un file php di configurazione delle funzionalita' da usare.
    In quel file ci schiaffi i daati che ti servono tipo :
    $funcs =array(

    array(
    "file"=>"path/to/file.php" , "funzioni"=>array("funzione1" , "funzione2") , "altro"=>"altro" )
    );

    poi includi il file dove ti serve, e con l'uso delle globals ci puoi accedere dalle funzioni o dal codice della pagina dove ti serve.

    e usando i comandi tipo quelli che hai messo sopra puoi chiamare e usare le funzionalita' anche da files diversi(ovviamente devi usare un require/require_once per caricare il file delle funzioni che ti serve).

    Gud lac.

  5. #5
    Grazie per la tua risposta dettagliata ma le funzione sono molte, infatti è per questo che volevo fare 2 files con ognuna 70-80 function, altrimenti avrei 140 files , sarebbe esagerata la cosa.
    l'azione dovrebbe essere la seguente:
    1)ho una cartella con 2 o 3 files, con all'interno 60-70 function rinchiuse in files in base a diverse tipologie.
    2)ad esempio dopo aver effettuato l'inserimento un determinato autore con tutti i libri associati a lui attraverso un join con un'altra tabella, inserisco questi dati nel DB. Fiinito l'inserimento mi parte una chiamata allo script che mi apre la cartella relativa. mi cerca il file in base al nome e poi la function magari in base al nome delle tabelle coinvolte e gli passo anch il record della query effettuata per l'inserimento.
    3) mi esegue una o più function , stanpandomi a videoi relativi echo.

    la cosa deve essere più o menp dinamica
    Un casino vero

  6. #6
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    Di solito il casino nasce se nn si progetta adeguatamente il software e/o la base di dati.

    Mi sembra di capire che devi gestire una db di autori, quindi hai la tab autori la tab opere.
    Le opere cmq a volte possono essere scritta da piu' autori, come molti testi scientifici o anche testi di narrativa o saggi o altro. per cio yi consiglio di inserire una tabella di relazione tra autori e opere visto che hai un tipo di relazione molti a molti.

    Uno domanda tutte quelle funzioni a che ti servono????

    per me a sto pto potresti anche fare una cosa del tipo :

    file di gestione inclusione risorse : req_manager.php

    Codice PHP:

    switch ($controllo)
    {
       case 
    : require("file1.php");break;
       case 
    : require("file2.php");require("file4.php");break;
       case 
    : require("file1.php");require("file2.php");require("file5.php");break;
       case 
    : require("file1.php");require("file3.php");break;

    poi nel file dove devi effettuare le operazioni fai

    Codice PHP:
    $controllo // o altro valore in base alla configurazione che ti serve

    include("req_manager.php "); 
    Cosi' quel fiile si occupera di gestire tutti i require che ti possono servire nella pagina.

    per il discorso funzioni ..... come detto sopra ... a che ti servono?
    Giusto per capire che magari si possono unire in funzionii piu' grandi con parametri di controllo.
    Oppure addirittura in classi quindi poi avresti una gestione ad oggetti che sinceramente e' molto piu' pulita.

  7. #7
    Il database già è esistente e come dici tu ci sono relazioni uno a molti, un autore può aver fatto piu libri.
    Queste funzioni mi verificano se ci sono errori o meno, attravero un messaggio alla pagina o warning e nulla più, in base hai dati inseriti nella form di insert.
    Mi servono solo 2 files: pippo1.php e pippo2.php per raccogliere le 2 diverse tipologie di funzioni di controllo.
    Quindi l'azione è questa:
    1)inserisco i dati ed eseguo la query (gia fatto)
    2)mi parte la chiamata ad un file-script che mi va nella directory stabilizza, mi trova il file e all'interno del file vede le funzioni che deve eseguire.
    in questa chiamata mi passo :
    $nome_tabella che contiene una o piu tabelle
    $nome del file
    $la query con i valori che ho inserito
    3)il file script mi vede magrai i nome della tabella che figura, gli passa le varaibili ed esegue le o la function

    es:
    le tabelle sono
    Codice PHP:
    $nome_tabella="tab1,tab2"
    le function del file pippo1.php sono:
    Codice PHP:
    funtion tab1_tab2_libri (.......)
    funtion tab1_nomeautore (.......)
    funtion libro_nuovo (.......) 
    lo script mi eseguirà solo le function dove sono mensionate tab1 e o tab2

  8. #8
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    OMG!!!!!

    Ci credo che ci scleri sopra!!!

    Io ti sconsiglio vivamente di usare una soluzione del genere in quanto ti obbliga replicare tantissime righe di codice, e inoltre ti constringe a fare un casotto di funzioni in base al prodotto cartesiano tabelle X funzioni.

    Ti consiglio di cambiare approccio.
    Intendo se devi gestire la cosa in questa maniera non fare millioni di funzioni, ma giuste quelle funzioni atomiche di basso livello invocate da un layer superiore.

    Per esempio fai una funzione che controlla le chiavi, una funzione che controlla la relazione tra le tabelle, un funzione che controlla la coerenza dei dati nella tab di relazione ....
    Queste funzioni sono le funzioni di basso livello, piccole funzioncine atomiche cha fanno poca roba.
    Quindi scrivi un layer che si interfaccia tra te e le funzioni.Tale layer(livello) e' composto da pochissime funzioni che in base ai parametri che gli passi usano le funzioni di basso livello per eseguire tutti i controlli che ti servono.

    Con questo tipo di approccio vedrai che il numero di funzioni non dipende piu' dal numero di tabelle, non avrai codice replicato, avrai una struttura piu' flessible e piu' facile da gestire.

    Il fatto di gestire le funzioni con i nomi delle tabelle e quindi lanciarle dinamicamente in base al nome singnifica che ti fai solo del male, intendo ti tocca scrivere pacconi di codice spesso uguale.
    Con un approccio di tipo bottom-up(quello che ti ho scritto sopra) invece ti progetti una serie di piccole entita' che si occupano di fare esclusivamente determinate operazioni e controlli sulle tabelle restituendo true/false o dati.
    Uno volta fatto cio puoi usare quelle funzioncine come ti pare mescolandole tra di loro. Se provi con questo approccio vedrai che ti sara' piu' semplice gestire il tutto anche perche' nn dovrai invocare a runtime le funzioni in base ai nomi ma in base a dei parametri eseguirai le operazioni necessarie a completare i controlli .

    Pensaci.

  9. #9
    Ciao,
    al dila delle funzioni di cui alcune saranno dinamiche , cioè gli passo qualunque tabella,
    resta il problema di questo script per getsire la cosa
    Ovvero alla funzione che mi serve devo selezionarla in abse ad un criterio ed eseguirla passando i valori sopra mesionatiù
    Aiutoooooo!!!!!

  10. #10
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    ma scusa non ti conviene fare una cosa come

    Codice PHP:
    function handleTables$tables $params)
    {
       if( 
    is_array($tables) && is_array($params) )
       {
          
    // scorri l'array delle tabelle e dei parametri i lancia le funzioni.
          
       
    }

    E' molto piu' semplice che nn doverle invocare "dinamicamente" non credi.
    Anche perche' puoi concatenare il nome della tabella nella stringa che poi diventera' la tua query, il che e' decisamente una soluzione migliore rispetto a fare una funzione per ogni coppia di tabelle.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.