Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Dato un URL togliere il nome della pagina

    Ciao a tutti.
    Volevo chiedere se è possibile in PHP dato un url completo ottenere come risultato lo stesso url senza il nome della pagina (se esiste) e senza le variabili passate, i get per intenderci (se esistono)?


    Grazie


    Ciao


    MpMp
    Mp

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    Codice PHP:
    $url="www.pippo.it/cartella/sottocartella/file.php";

    $path=str_replace(basename($url),"",$url);

    echo 
    $url // stampa  ----www.pippo.it/cartella/sottocartella/---- 
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Non funziona correttamente se gli vengono passati dei link formattati così

    www.pippo.it/cartella/sottocartella/ (ritorna www.pippo.it// invece di www.pippo.it/cartella/sottocartella/)

    www.pippo.it/cartella/sottocartella (ritorna www.pippo.it/cartella/ invece di www.pippo.it/cartella/sottocartella o www.pippo.it/cartella/sottocartella/)

    C'è un modo per ovviare a questo?
    Mp

  4. #4
    Utilizza basename() per ottenere il nome del file.
    Verifica se è presente il "."

    In caso affermativo utilizza dirname() per ottenere l'URL senza il nome del file,
    altrimenti tieni l'URL così comè.

    Un ultima normalizzazione potrebbe prevedere l'aggiunta di / al termine della stringa nel caso non sia già presente (vedi substr()).

  5. #5
    questa soluzione dovrebbe fare al cosa mio grazie!
    Mp

  6. #6
    non funziona nel caso più semplice http://www.pippo.it
    Mp

  7. #7
    Mi spiace ma non sembra tu ci stia mettendo molto impegno.

    Esistono varie funzioni che puoi utilizzare (es. parse_url()), ma aspettare che qualcuno ti fornisca la soluzione perfetta che prende in considerazione qualsiasi tipologia di input (anche quelli che non indichi nei tuoi post) è un po' eccessivo.

  8. #8
    per di più che con una semplice ricerca su google (ad esempio cerca "php preg_match_all url domain" ) trovi molto sulle regexp di già pronto per il tuo problema,

    non ricordo quale ho usato io se poi proprio ti serve posso sempre guardarlo (non oggi però)

    ma ho trovato funzioni tipo queste ..

    Codice PHP:

    <?php 
    if(preg_match("/^[htfps]{3,}\\:\\/\\/(\\w+)?\\.?(\\w{3,})\\.(\\w{3,}|\\w+\.\\w+)/i""http://www.google.jp.com/search"$matches)) 

        
    array_shift($matches); 
        
    //print_r($matches); 
        
    echo implode('.'$matches); 

    ?>
    che mi sembrano più che valide ora ti conviene perderci un po di tempo e farti un array di esempi tipo e farci qualche test..

    ciao
    Ondare, il mio blog!

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    la pappa pronta... :rollo:
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.