Visualizzazione risultati 1 fino 13 di 13

Discussione: Aggiungere l'alt alle immagini

  1. #1
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito Aggiungere l'alt alle immagini

    Ho uno script che mi legge in un file di testo le news del mio sito. In questo file di testo c'è anche del codice HTML e quindi anche delle immagini. Per alcune di queste immagini ho dimenticato il parametro alt e volevo aggiungerlo.
    Il valore del parametro alt ce l'ho, il problema è capire se l'immagine possiede il parametro e come aggiungerglielo. A mano non posso certo farlo perché sono diversi anni di news.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Dato che si tratta di un file di testo, dipende MOLTO da come hai formattato i dati:
    - un record per riga o separati da qualche carattere?
    - come hai separato tra loro percorso e testo alternativo, se presente? Se per qualche motivo dovessi usare proprio il separatore nel testo, com'è che ne fai l'"escape" (cioè far capire che si tratta di un carattere e non di un separatore, un po' come si mette il back-slash davanti alcuni caratteri in PHP)?
    - quali dati ci sono per ogni immagine e in che ordine (dando per scontato sia sempre lo stesso)?
    - se hai "saltato" un dato, hai inserito due separatori consecutivi o hai proprio saltato a piè pari l'inserimento?

    Sono tutte domande a cui devi trovare risposta prima di abbozzare una qualsiasi routine che ti apra il file, lo esamini riga per riga e vi aggiunga il testo alternativo laddove manchi...

    Stammi bene...
    Ultima modifica di dementialsite : 07-02-2006 alle ore 12.15.27
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho una variabile stringa con un po' di codice HTML. L'ordine dei parametri dentro al tag dell'immagine può cambiare, ma gli unici che ho usato sono: src, border e style.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Non conosco bene le funzioni sui file (di PHP suppongo), ma come strategia penso possa andare bene questa: se ho capito bene, non hai altro che dei tag immagine uno in fila all'altro (uno per riga?). Allora procedi così:

    - estrai una riga da quel file di testo e salva il risultato come stringa
    - esamina la riga e verifica se ci trova dentro la substringa ALT=" (dovrebbe esserci la funzione strpos se non ricordo male)
    - se quella risulta presente, allora c'è già l'attributo ALT, ti basta quindi ricopiare la riga così com'è nel nuovo file
    - se invece non c'è, devi architettare il modo di sostituire la chiusura del tag > con la stringa ' ALT="...">' (notare lo spazio iniziale). Quindi ricopierai nel nuovo file la riga così modificata

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Non c'entra nulla se sta in un file. Io ho una variabile che contiene del codice HTML, tra cui anche i tag per le immagini.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  6. #6
    Guest

    Predefinito

    beh allora non mi sembra ci sia altra soluzione che l'uso di espressioni regolari direi...

    Secondo me quello che ci vuole sono dei preg_replace

  7. #7
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Ho fatto un po' di prove, ma non riesco. Le immagini sono così strutturate:
    Codice HTML:
    <img src="indirizzoimmagine" parametri>
    Io vorrei verificare che tra i parametri ci sia il tag alt e se non c'è aggiungercelo.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  8. #8
    Guest

    Predefinito

    puoi provare cosi:
    Codice PHP:
    if( !preg_match_all("#<img (.*?) alt=\"(.*?)\">#is", $code, $reg) )
    {
    $code = preg_replace(#"<img (.*?)>#is", "<img $1 alt=\"codice\">", $code);
    }
    ciao ^__^

  9. #9
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Per cosa sta $reg?

    EDIT: Mi auto-rispondo:
    Citazione Originalmente inviato da http://it.php.net/manual/it/function.preg-match-all.php
    int preg_match_all ( string espressione_regolare, string testo, array &TestiRiconosciuti [, int flags [, int offset]] )

    La funzione ricerca tutte le espressioni regolari passate nel parametro espressione_regolare all'interno della stringa testo. I testi riconosciuti sono posti all'interno della matrice TestiRiconosciuti, nell'ordine specificato da flags.
    Comunque grazie, funziona!!
    Ultima modifica di funcool : 24-02-2006 alle ore 13.23.05
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  10. #10
    Guest

    Predefinito

    Codice PHP:

    if( !preg_match_all("#<img (.*?) alt=\"(.*?)\"(.*?)\/>#is", $stringa, $reg) )
    {
    $stringa = preg_replace("#<img (.*?)\/>#is", "<img $1 alt=\"ciccio\"/>", $stringa);
    }
    Funziona... L'ho provato così funziona (bravo Jostock!)
    Occhio però al "\/>" io uso xhtml strict quindi ho dovuto aggiungere il "\/" se tu non usi strict toglilo!

    io ho lasciato $reg e funziona... Cosa metti al posto di $reg?


    EDIT: Comunque c'è una cosa che non va in questa funzione (credo..) se nello stesso testo ($stringa) ci sono due immagini, una con l'alt e una senza alt, allora non va...prova..
    Ultima modifica di attorianzo : 01-03-2006 alle ore 19.25.36

  11. #11
    Guest

    Predefinito

    Scusate se riporto su questa discussione è per fare una domanda diversa, per un altro argomento per il quale dovrei aprire un thread inutilmente.......

    Ma è perchè non riesco a capire una cosa nell'espressione regolare.. Non riesco a capire a cosa serve il "#is" nel preg_replace... non riesco a trovare in nessuna guida il significato di quella esse.... La "i" significa "case insensitive" no? E la esse? e perche si usano i "#" anziche "/" ?

    Codice PHP:

    if( !preg_match_all("#<img (.*?) alt=\"(.*?)\"(.*?)\/>#is", $stringa, $reg) )
    {
    $stringa = preg_replace("#<img (.*?)\/>#is", "<img $1 alt=\"ciccio\"/>", $stringa);
    }
    P.S. : non è che per caso mi indichereste anche una buona guida?
    Ultima modifica di attorianzo : 01-03-2006 alle ore 20.32.26

  12. #12
    Guest

  13. #13
    Guest

    Predefinito

    mmm... sto leggendo le guide... mi pare di capire che la "s" significa che deve considerare il carattere "a capo"... ma se non lo si metteva che succedeva?

    e non riesco a capire il significato del "#"....

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •