Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180

    Titolo della pagina in base al nome del file

    Ciao ragazzi, sono un novellino di php e quindi cerco aiuto su questo fantastico sito per ricercare una soluzione ai miei problemi.

    Il mio problema è nel tag <title></title> In pratica mi piacerebbe mettere Mt19 Official Site | nome del file.php
    Per fare un esempio:
    se il file si chiama chi_sono.php il titolo deve essere Mt19 Official Blog | Chi Sono.
    Quindi oltre che a mettere il nome del file dovrebbe anche togliere eventuali - o _ e mettere le lettere di inizio parola in maiuscolo. Volendo potrei mettere il nome a mano, ma siccome sto facendo un sito piuttosto grande, mi farebbe molto comodo creare uno scsript che mi faccia tutto in automatico. E' fattibile?

    Grazie mille a tutti

  2. #2
    Utente di HTML.it L'avatar di danlupo
    Registrato dal
    Jul 2009
    Messaggi
    314
    Ciao..

    Secondo me teoricamente potresti usare la variabile $_SERVER['php_self'] che ti restituisce l'indirizzo della pagina

    poi qui potresti usare uno switch

    codice:
    $pagina=$_Server['php_self'];
        switch($pagina)
    {
        case 'chisiamo.php': $title ='Chi Siamo';
            break;
        
        default: $title='Official WebSite';
            break;
    }
    poi nel titolo lo metti come

    codice:
    echo "Mt19 Official Blog | ".$title;
    Questo per la versione 'base' se vuoi mettere tutte le prime lettere in maiuscolo dovresti usare un
    codice:
    $title = ucwords($title)

  3. #3
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Prova cosi

    Codice PHP:
    echo 'Mt19 Official Blog | ' ucwords(str_replace(array('_''-'), ' 'trim(basename(__FILE__), '.php'))); 
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  4. #4
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Secta

    Grazie mille, funziona alla perfezione, siccome mi hai dato una risposta impeccabile al primo colpo, ti chiedo un' ulteriore cosa: se uno il mini script che mi hai dato tu nella home mi diche Mt19 Official Blog | Index (ovviamente), come posso togliere quel | index oppure sostituirlo con home?


    danlupo
    Grazie mille della tua risposta, ma ho optato per quella più veloce anche a prova di stupido (io ).

  5. #5
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    Se index.php è soltanto una, valuta di scriverla direttamente a mano... se ciò non ti è possibile o hai altre index in altre sotto cartelle, usa questo

    Codice PHP:
    if ('index' == $page trim(basename(__FILE__), '.php'))
    {
        
    $page 'home';
    }

    echo 
    'Mt19 Official Blog | ' ucwords(str_replace(array('_''-'), ' '$page)); 
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

  6. #6
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Sono uno stupido non ci avevo pensato (capitan ovvio). A volta la soluzione più giusta è anche la più semplice.... Scusa, scrittura del codice inutile, ma ne farò tesoro per una prossima volta. Torno alla programmazione del mio sito. Ciao e grazie infinite ancora

    p.s. sii onorato: http://forum.html.it/forum/showthrea...readid=1501051
    ahahah è riferito anche a te

  7. #7
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Io personalmente a questo punto opterei per qualcosa di più dinamico e meno macchinoso. Ovviamente è un esempio molto semplice, io non lo farei mai in questo modo però non voglio nemmeno metterti sulla brace troppe nozioni e cose per non complicarti la vita. Dai un occhiata al seguente codice e dimmi se ti ci raccapezzi:
    Codice PHP:
    $pages = array(
        
    'index' => 'Home',
        
    'chi_sono' => 'Chi sono',
        
    'page' => 'My page',
        
    'anotherpage' => 'Another page',
    );

    $currPage basename(__FILE__'.php');
    $title = (in_array($currPage$pages)) ? $pages[$currPage] : 'Default title'

  8. #8
    Utente di HTML.it L'avatar di mt19
    Registrato dal
    Jul 2011
    Messaggi
    180
    Per capirci ci ho capito, ma comunque io ho optato per la cosa semplice senza if. Le index sono 2-3 e in quelle lo scrivo a mane, mentre nelle altre funziona bene questo:

    Codice PHP:
    echo 'Mt19 Official Blog | ' ucwords(str_replace(array('_''-'), ' 'trim(basename(__FILE__), '.php'))); 
    probabilmente è più macchinoso ma mette le lettere maiuscole all' inizio della parola, mi toglie i "-" e "_" e il .php

    E quello che dici tu (che sarà pur più completo e strutturato meglio..) mi scombussola un po' di più le idee....

    Secondo voi due che ci capite di php, qual è la meglio? Mi potreste dare una motivazione (così imparo anche qualcosa).

    Grazie mille

  9. #9
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Sono due approcci un pochino differenti. Quello che stai adottando ora implica che tu debba duplicare il codice in ogni pagina e le pagine rimangono isolate tra di loro. Il problema con questo approccio è che se un domani cambie idea e vuoi modificare il modo in qui il titolo compare dovrai passare file per file e fare la modifica. Ovviamente la cosa diventa tanto più onerosa tanto più pagine hai.

    Il mio approccio presuppone invece che la piccola porzione che ti postato venga messa in un file comune che viene incluso in ogni sotto pagina che ti serve. Il giorno che dicidi di modificare qualcosa la modifica la applichi in un punto solo. Non solo, siccome stai usando un array che ha una relazione uno ad uno tra nome file e titolo non devi scomodare if o logiche di alcune genere. Se vuoi che index abbia come titolo foobar basta che fai:
    Codice PHP:
    $pages = array( 
        
    'index' => 'foobar'
        
    'chi_sono' => 'Chi sono'
        
    'page' => 'My page'
        
    'anotherpage' => 'Another page'
    ); 
    In futuro questo ti tornerà anche molto utile nel caso in cui tu ti voglia addentrare nel mondo del multilingua perchè ti farà tradurre il tutto in modo più agevole rimuovendo efficacemente la dipendenza tra nome file ed il titolo dal nome pagina.

  10. #10
    Utente di HTML.it L'avatar di Secta
    Registrato dal
    May 2002
    Messaggi
    365
    La soluzione di _debo è molto più flessibile della mia (che a dire il vero non ha alcuna flessibilità ), quindi ti suggerirei di utilizzare la sua. L'unico accorgimento (e solo se le pagine sono molte con un'array enorme) è di non usare l'operatore ternario ma if ed isset.
    "Dai diamanti non nasce niente, dal letame nascon fiori."
    Fabrizio De Andrè

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.