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

    taglio stringa da . a . (sottodom.dom.it)

    Salve a tutti come avete capito dal titolo dovrei riuscire ad estrarre una stringa di caratteri (il nome di un indirizzo web) contenuto fra due punti.
    Es. se ho un indirizzo del tipo mionome.dominio.it mi dovrà restitutire "dominio"
    se ho un indirizzo del tipo www.dominio.net, mi dovrà restituire "dominio"
    Qualcuno ha un'idea di come posso fare?
    Grazie
    Umbria e Sapori
    www.umbriaesapori.it

  2. #2
    se "dominio" non contiene punti di mezzo:

    Codice PHP:
    $address "www.dominio.it";

    $reg_exp "#^[^\\.]+\\.([^\\.]+)\\.[^\\.]+$#";
    preg_match_all($reg_exp$address$linesPREG_SET_ORDER);

    $search $lines[0][1]; 
    =======================
    http://www.abidibo.net

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    119
    Molto elegante, io sono un po' più rudimentale

    $address = "www.dominio.it";

    $dominio_arr = explode('.' , $address);
    $dominio = $dominio_arr[1];

    Ciao
    " Write. Less. Code. "
    ---------------------------------------
    Hotel Booking Software

  4. #4
    grazie ragazzi per le solerti e valide risposte!
    Umbria e Sapori
    www.umbriaesapori.it

  5. #5
    non c'è un limite al numero di sotto domini presenti in un indirizzo, di conseguenza sia l'espressione regolare, sia il codice con l'explode sono soggetti a possibili errori!

    L'espressione regolare dovrebbe essere più nella forma di

    /^(.+?)?\.?([^\.]+)\.[^\.]+$/

    in modo da rendere ininfluente la possibile presenza del sotto dominio a uno o più livelli

    mentre l'explode, che consiglio come soluzione, perché scomodare le espressioni regolari mi sembra un pò eccessivo, tranne che si deve fare quest'operazione consecutivamente su un elenco nella stessa pagina (le PREG hanno il vantaggio che "compilano" l'espressione regolare in codice macchina di conseguenza se il pattern viene usato più volte nella stessa istanza si ha un guadagno prestazione enorme, invece se viene usato poche volte questo vantaggio prestazionale si perde nel tempo necessario per creare il codice macchina ed allocarlo in memoria), il codice potrebbe essere qualcosa tipo

    codice:
    $uri = "www.dominio.it";
    
    $uriParts = explode('.' , $address);
    array_pop($uriParts);
    $domain = array_pop($uriParts);
    array_pop rimuove l'ultimo elemento dall'array passato e lo restituisce, eseguendolo due volte, come in questo caso, si ha il dominio restituito alla fine
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

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.