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
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
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
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
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()).
questa soluzione dovrebbe fare al cosa mio grazie!![]()
Mp
non funziona nel caso più semplice http://www.pippo.it
Mp
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.
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 ..
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..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);
}
?>
ciao![]()
Ondare, il mio blog!
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