Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: 2 questions about php

  1. #1

    2 questions about php

    1
    Vorrei creare una specie di blog gestibile direttamente online (inserimento, modifica, eliminazione post): oltre ai database, c'è qualche altro modo? Pensavo a qualcosa basato su file .txt. Il problema è che, ad esempio, se in un file txt memorizzo data, titolo, autore e testo del post (ricevuti tramite un form classico), come faccio poi a estrapolare questi dati in variabili differenti (se inatti uso fread lui legge tutto come un'unico testo)?
    Oppure, c'è un modo per inserire dati ad un array, ma che questi rimangano memorizzati nel file sul server?



    2
    Tutto questo mi piacerrebbe farlo con xml: voi come gestite tali file tramite php?




  2. #2
    1:


    i dati nel txt li devi dividere con dei separatori es:

    codice:
     |id:151|data:1211152315| msg:ciaoquestoèilmioblog| - |id:34 ecc
    cosi facendo puoi separare i vari "record"

  3. #3


    E poi, ad esempio, come ricavo i dati del primo post?

    Grazie mille.

  4. #4
    perchè non toglierti parecchi problemi usando semplicemente un database mysql? sempre che tu lo abbia a disposizione, ovviamente..

  5. #5
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da pierofix


    E poi, ad esempio, come ricavo i dati del primo post?

    Grazie mille. [/supersaibal]
    con fread ti leggi il file

    Poi con la funzione explode dividi i vari record.
    Seguaiamo l'esempio di Xnavigator:

    codice:
    $file=Contenuto del file di testo;
    $record=explode("-", $file);
    A questo punto avrai ogni record memorizzato nell'array $record..
    Quindi con un ciclo farai:
    codice:
    $i=0;   //per scorrere l'array dei record
    $campi=explode("|", $record[$i]);
    $campi[0]= id messaggio;
    $campi[1]= data messaggio;
    $campi[2]= messaggio;
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  6. #6
    Fantastico, grazie mille!

    Ma nessuno usa php+xml?


  7. #7
    Utente di HTML.it L'avatar di Inoki
    Registrato dal
    Oct 2001
    Messaggi
    788
    [supersaibal]Originariamente inviato da pierofix
    Fantastico, grazie mille!

    [/supersaibal]

    de nada
    "La teoria è quando si sa tutto e niente funziona. La pratica è quando
    tutto funziona e nessuno sa il perché. In questo caso, abbiamo messo
    insieme la teoria e la pratica: non c'è niente che funziona... e nessuno sa
    il perché!" (Albert Einstein)

  8. #8
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    Attualmente sto sviluppando una nuova...diciamo così...filosofia. Sembra complessa ma in realtà è molto più semplice di quello che pensavo!

    L'idea è di separare i concetti

    - CONTENUTO (xml)
    - STRUTTURA (xml)
    - STILE (css)
    - STAMPA (script php)

    In pratica i documenti vengono descritti all'interno di un file XML di solo contenuto.
    Utilizzo tag puramente descrittivi, brevi e mnemonici.
    Per esempio

    codice:
    <DOCUMENTO autore="pippo" data="06/02/2005 titolo="prova" ">
    
    <DESCRIZIONE>blah blah</DESCRIZIONE>
    
    <TITOLO>titolo del documento</TITOLO>
    
    <CONTENUTO>
         blah blah blah <LINK href="http://www.url.com">un link</LINK>
     
    </CONTENUTO>
    
    </DOCUMENTO>
    Da osservare che questo file non ha alcun riferimento circa la sua struttura o il suo stile. Però è leggibile!
    La struttura viene descritta in un secondo XML che però può essere comune a più documenti...eventualmente tutti.

    codice:
    <PAGINA>
    <TITOLO />
    <CONTENUTO />
    </PAGINA>
    Infine viene il foglio di stile classico.

    Il direttore d'orchestra è ovviamente il parsing PHP dei vari XML. Cerco di non tediarvi con i dettagli...

    L'idea è quella di effetuare la visita completa in-order dell'albero XML oppure ricercare un nodo in particolare per generare la pagina (esempio i meta tag). Questo processo lo chiamo STAMPA.

    esempio di visita in order (1st child/next sibling)
    Per ogni nodo se è testo lo stampo cosi com'è (tanto c'e poco da fare) se è invece un tag ho due possibilità.
    La prima, di default, è di stamparlo com'è (quindi non ha effetto sull'output).
    La seconda è di richiamare la funzione associata a parsare quel tag.
    Nel php questo è particolarmente semplice perchè la tabella di parsing è banalmente un array associativo (una mappa) del tipo

    $parser_table["nome_tag"] = "nome_funzione";

    Quando incontro un tag richiamo la funzione che riceve varie info sul tag

    - nome del tag
    - accesso ai suoi attributi
    - il tag è in apertura o chiusura?
    - path del tag
    - ecc...

    Questo è un esempio 'reale' (anche se banale)

    codice:
    // \n per dare leggibilità al sorgente
    function Comment(&$tag_struct){
      echo($tag_struct->isopen()?"<span id=COMMENTO>\n":"</span>\n");
    }
    Naturalmente posso decidere se visualizzare o meno il nodo (comunico al parser di ignorare anche il testo) oppure utilizzare gli attributi (invisibili al browser!)
    Le funzioni che gestiscono i tag possono essere molto più complicate!
    Ad esempio potrebbero generare i meta tag html oppure verificare se il link è attivo o meno (quindi stamparlo con una riga sopra).
    Unico limite la fantasia!

    I vantaggi di questo metodo sono infiniti! Ne cito alcuni

    - contenuto, struttura, stile e stampa sono totalmente indipendenti (posso modificare uno senza preoccuparmi dell'altro!)

    - posso modificare l'implementazione di un tag (ad esempio implementare un LINK con un javascript più complesso)

    - il documento è facile da scrivere, da leggere (anche senza browser!), da modificare. E' compatto! Scrivo il documento normalmente (converto il testo in caratteri HTML al momento della stampa : esempio caratteri accentati, <, >, ecc...)-> leggibilità!

    - il db posso usarlo al meglio! lascio i documenti sul filesystem mentre nel db memorizzo solo il riferimento al doc, la descrizione, la data, l'autore, i link, ecc...il processo di acquisizione nel db può essere reso automatico attraverso la semplice ricerca sui tag o gli attributi del CONTENUTO.xml.
    Tale processo può essere automatizzato a livello di singolo documento o di intere directory!
    Eseguo l'upload di un nuovo documento e mi trovo il giorno dopo il db aggiornato !
    Posso modificare un contenuto senza preoccuparmi del db (il riferimento non cambia)(al limite si aggiornano i campi)
    In questo modo però il db evita di frammentarsi perchè le info contenute sono minime. Facili da recuperare.

    - inoltre la struttura gerarchica XML può essere usata per gestire strutture 'ricorsive' come le mappe di un sito (path)...in un modo davvero semplice.

    Allo stato attuale molti problemi li ho già risolti ma in modo 'indipendente'...inoltre devo pensare alle notazioni da usare (meglio i tag o gli attributi? nomi?)

    Sperando di avervi non dico convinto ma almeno incuriosito...

  9. #9

    ci dovresti scrivere una bella pillolona!!!

  10. #10
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    E' ancora un work in progress...ma come ho detto è tutto abbastanza semplice ma richiede la scelta giusta delle convenzioni da adottare.
    In fin dei conti sfrutto parser già fatti per cui ho solo da implementare delle funzioni di wrapping.
    Il lavoro duro è stato fatto da altri!

    Quello che ottengo è una specie di HTML 'virtuale' in cui cioè posso aggiungere nuovi tag o modificare il comportamento di quelli esistenti (via PHP).
    Oppure sfruttare XML per descrivere la struttura della pagina.

    Se avrò qualcosa di 'solido' da mostrare lo renderò scaricabile...perchè a pubblicare per intero il tutto mi bannerebbero (giustamente) dal forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.