[PHP] Estrarre dominio No Sottodomini

  • Creatore Discussione Creatore Discussione bubino8
  • Data di inizio Data di inizio

bubino8

Utente Attivo
28 Apr 2017
360
20
28
32
BZ
Buongiorno,

Ho una lista di domini e sottodomini, tramite ciclo for li estraggo dal DB ma ho bisogno di visualizzare solamente i domini di primo livello.
Es.:
dominio.com - prova1.dominio.com - prova2.dominio.com
dominio.it - test.dominio.it

In questo caso dovrebbe solamente estrarmi
dominio.com - dominio.it


Grazie
 
Su due piedi ti direi di inserire nel tuo ciclo la creazione di un array con il comando explode e di seguito assegnare ad una variabile il valore dell'elemento 0 dell'array

$array_dominio = explode('/', $elemento_ciclo);
$domino=$array_dominio[0];
 
Ultima modifica:
Grazie per la risposta

PHP:
$array_dominio = explode('.', 'testerdominio.com ');
$domino=$array_dominio[0];
//$dominio in questo caso è testerdominio

$array_dominio = explode('.', 'miodominio.com ');
$domino=$array_dominio[0];
//$dominio in questo caso è miodominio

$array_dominio = explode('.', 'prova1.miodominio.com ');
$domino=$array_dominio[0];
//$dominio in questo caso è prova1

Ho molti altri domini e sottodomini.

Come faccio in questo caso a farmi mostrare solamente testerdominio.com e miodominio.com


Grazie
 
ciao
per prima cosa: come sono effettivamente scritti i nomi dominio/sottodominio nel db?
perchè se sono proprio scritti come hai indicato
dominio.com - prova1.dominio.com - prova2.dominio.com
cioè i vari nomi separati da 'spazio-spazio" potresti fare così
PHP:
//dati di connessione e query...
while($riga=mysqli_fetch_assoc($ris)){
    $d=$riga['dominio'];//o come si chiama il campo
    $primo=explode(" - ",$d);
    //li metti in un array se vuoi usarli da qualche altra parte
    $primo_livello[]=$primo[0];//oppure usuarlo qui es echo $primo[0]."<br />";
}
foreach($primo_livello as $nome){
    echo "$nome<br />";//o altro che devi fare
}
//.....
 
Nel database ho la tabella "domini" col campo "nomedominio" ogni cella(riga) contiene solamente un dominio che sia di primo o secondo livello.
Ho bisogno di estrarre solamente i domini di primo livello.
I domini sono campo testo senza (www. o http://) solamaente:

dominio.com
dominio.it
test.dominio.com

Da questi 3 domini di esempio nell ciclo dovrà restituirmi i domini di primo livello quindi

dominio.com
dominio.it


Spero di essermi spiegato un pochino meglio, altrimenti allegherò uno screen :D.

Grazie ancora
 
ciao
prova una cosa del genere
PHP:
//dati di connessione e query...
while($riga=mysqli_fetch_assoc($ris)){
    if(substr_count($riga['nomedominio'], '.')==1){
        echo "dominio primo livello: ".$riga['nomedominio']."<br />";// dominio.com
    }else{//per prova, poi eventualmente lo togli
        echo "sotto dominio: ".$riga['nomedominio']."<br />";// test.dominio.com
    }
}
//......
 
  • Like
Reactions: bubino8
Perfetto quello che cercavo grazie mille.
Gusto per capire il funzionamento (cosi imparo qualcosina).
PHP:
if(substr_count($riga['nomedominio'], '.')==1){

In questo modo gli dici che se il dominio contiene solamente un "." è dominio altrimenti sottodominio. Corretto??

Grazie mille ancora.
 
Stavo facendo i miei test e mi è venuto in mente una cosa.
Se il dominio dovesse essere come quelli regionali / provinciali
esempio.:
.bz.it
.pr.it

Come potrei fare? L'unico modo che mi viene in mente e modificare dandogli l'eccezione specifica modificando in qualcosa del genere.

PHP:
if(substr_count($riga['Dominio'], '.')==1 OR substr($riga['Dominio'], '.bz.it ')){

Ci sono altre soluzioni?
Grazie
 
ciao
si il funziomento è quello.
poi per i domini regionali / provinciali penso sia un po un problema, come hai postato dovresti farlo per ogni siglia (mi sembra che le provincie siano 99), provo a pensarci e se mi viene in mente qualcosa posto
 
  • Like
Reactions: bubino8

Discussioni simili