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

Discussione: Sistema di tag con php

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    Sistema di tag con php

    Ciao ragazzi, vorrei creare dei tag strutturati così:

    [it]Ciao mondo[/it] [en]Hello World[/en]

    Passando tramite GET la lingua, vorrei visualizzare solo il contenuto tra il tag passato dal GET.
    Esempio:
    se passo "it"
    mi deve visualizzare:
    "Ciao mondo"

    se invece passo "en"
    mi deve visualizzare:
    "Hello world"

    siccome non sono molto bravo con le espressioni regolari, potreste aiutarmi?

    Grazie

    m4tt86

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    non so se ho capito bene quello che devi fare, ma non mi sembra che ti servano le espressioni regolari, devi scrivere non leggere, prova con una cosa così:

    Codice PHP:
    $tag = array("it"=>array("it","Ciao Mondo"),"en"=>array("en","Hello World"));

    echo 
    "[".$tag[$_GET['tag']][0]."]".$tag[$_GET['tag']][1]."[/".$tag[$_GET['tag']][0]."]"
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao las,
    intanto grazie per la tua risposta.

    Sicuramente non mi sono saputo spiegare molto bene.

    All'interno del mio db ho del testo racchiuso tra tag simile a questo:
    [it]Ciao mondo[/it]
    [en]Hello World[/en]

    Quello che vorrei fare io è visualizzare solo il testo racchiuso tra i tag nella lingua che passo dal get.

    Esempio, se tramite GET passo: &lang=it
    devo poter visualizzare solo "Ciao mondo"
    se invece passo: &lang=en
    devo poter visualizzare solo "Hello World"

  4. #4
    Originariamente inviato da m4tt86
    Ciao las,
    intanto grazie per la tua risposta.

    Sicuramente non mi sono saputo spiegare molto bene.

    All'interno del mio db ho del testo racchiuso tra tag simile a questo:
    [it]Ciao mondo[/it]
    [en]Hello World[/en]

    Quello che vorrei fare io è visualizzare solo il testo racchiuso tra i tag nella lingua che passo dal get.

    Esempio, se tramite GET passo: &lang=it
    devo poter visualizzare solo "Ciao mondo"
    se invece passo: &lang=en
    devo poter visualizzare solo "Hello World"

    ma perchè nel database non ti tieni un campo per la lingua e carichi il record necessario?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    perché il software non l'ho fatto io e il sistema purtroppo funziona tutto così :-(

  6. #6
    Originariamente inviato da m4tt86
    perché il software non l'ho fatto io e il sistema purtroppo funziona tutto così :-(

    ok, perchè allora invece di usare dei tags non usi dei dati strutturati tramite json_encode() o serialize() (JSON è più compatto della serializzazione standard di php)? almeno ti semplifichi la vita.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ma purtroppo ci sono oltre mille record con i contenuti già strutturati così.
    Purtroppo devo muovermi co questa logica. Io ovviamente li evrei strutturati in modo completamente diverso, avrei messo in una tabella tutti i contenuti traducibili ed avrei aggiunto un bellissimo campo IDLINGUA :-D

  8. #8
    Originariamente inviato da m4tt86
    Ma purtroppo ci sono oltre mille record con i contenuti già strutturati così.
    Purtroppo devo muovermi co questa logica. Io ovviamente li evrei strutturati in modo completamente diverso, avrei messo in una tabella tutti i contenuti traducibili ed avrei aggiunto un bellissimo campo IDLINGUA :-D
    e cosa sarà mai convertire questi mille records? tanto vale risolvere la questione una volta per tutte no?

  9. #9
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Prova così
    Codice PHP:

    $pattern 
    "#\[".$_GET['lang']."\](.*?)\[/".$_GET['lang']."\]#si";  
    preg_match($pattern,$tuoCampoDB,$arrRisult);  
    echo 
    $arrRisult[1]; 
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    non mi stampa niente, ho racchiuso tutto in una funzione:

    Codice PHP:
    function stampa ($text$tag)
    {
        
    $pattern "#[".$tag."](.*?)[/".$tag."]#si";  
        
    preg_match($pattern,$text,$arrRisult);  
        return 
    $arrRisult[1];

    Codice PHP:
    echo stampa ('[it]Ciao mondo[/it] [en]Hello world[/en]''it'); 

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.