Visualizzazione risultati 1 fino 12 di 12

Discussione: Estrarre dominio

  1. #1
    Guest

    Predefinito Estrarre dominio

    Salve.
    parto subito dandovi il codice:

    Codice PHP:
    <?php
    $link
    = array("http://www.sito.com/?f=BW","http://www.sito2.com/?t=BH8");

    /*inizio codice per estrarre dominio*/
    $url = $link;
    foreach (
    $url as $value) {
    $no_http = str_replace("http://", "", $value);
    $no_www = str_replace("www.", "", $no_http);
    $exp_url = explode("/", $no_www);
    $dominio = ucfirst($exp_url[0]);
    echo
    $dominio. '<br />';
    };
    /*fine codice per estrarre dominio*/

    ?>
    Risultato: http://bollywood2.altervista.org/link.php
    il codice funziona perfettamente, ma quello che voglio realizare e di estrarre il dominio sotto forma di link.
    Quello che vorrei ottenere:
    http://bollywood2.altervista.org/link.html

    Ho provato a far partire 2 cilci separati per risolvere il problema ma e stato completamente inutile, quindi sapete come posso risolvere il problema??

    Grazie in anticipo.

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    così complesso...!

    puoi usare la funzione parse_url() http://php.net/manual/en/function.parse-url.php
    per semplificarti il lavoro....
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito

    Grazie per aver risposto.
    Ho provato con quella funzione ma mi esce fuori un caos.
    puoi vedere come fare?
    Grazie ancora.

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    guarda se è quello che vuoi fare tu:

    Codice PHP:
    <?
    $links
    = array("http://www.sito.com/?f=BW","http://www.sito2.com/?t=BH8");

    /*inizio codice per estrarre dominio*/

    foreach ($links as $link) {

    //2 variabili separate:
    //$dominio_www=parse_url($link, PHP_URL_HOST);//estrae il dominio(compreso www. se presente)
    //$dominio_no_www = str_replace("www.", "", $dominio_www);//sostituisce www. se presente

    //oppure più semplice:
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));

    echo
    "<a href='$link'>$dominio_no_www</a><br />";

    }

    /*fine codice per estrarre dominio*/

    ?>
    Ultima modifica di EuroSalute : 30-04-2011 alle ore 17.46.50 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito

    Grande "EuroSalute", funziona perfettamente, grazie 1000 :):)

    --------------------------------------------------------------------------------------------------------------------

    piccolo problema mi sono reso conto che funziona solo su server microsoft(aruba) invece sui server di altervista(linux) non và :(:(
    mi visualizza solo una pagina bianca, forse non e standard, come si può fare per risovere questo problema?
    ho usato questo codice su entrambbi i server:
    Codice PHP:
    <?php
    $link_part
    = array("http://www.world.com");

    foreach (
    $link_part as $link) {
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));
    echo
    $dominio_no_www;
    }

    ?>
    Server microsoft: http://www.apkacinema.com/j.php
    Server altervista: http://bollywood2.altervista.org/j.php
    Ultima modifica di BOLLYWOOD2 : 01-05-2011 alle ore 15.03.17

  6. #6
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    impossibile, ho provato il tuo stesso codice qui sul mio host AV e funziona perfettamente....

    prova ad inserire questo codice all'inizio:
    Codice PHP:
    <?php
    //visualizza gli errori:
    error_reporting(E_ALL);

    $link_part = array("http://www.world.com");

    foreach (
    $link_part as $link) {
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));
    echo
    $dominio_no_www;
    }

    ?>
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  7. #7
    Guest

    Predefinito

    mi da questo errore:
    Notice: Use of undefined constant PHP_URL_HOST - assumed 'PHP_URL_HOST' in /membri/bollywood2/j.php on line 8

    Warning: parse_url() expects exactly 1 parameter, 2 given in /membri/bollywood2/j.php on line 8

  8. #8
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Hai attivato php5?
    Codice:
    Changelog
    
    Version 	Description
    5.1.2 	Added the component parameter.
    Devi attivare php5: http://forum.it.altervista.org/710811-post4.html
    Ultima modifica di andreafallico : 02-05-2011 alle ore 20.06.09

  9. #9
    Guest

    Predefinito

    Mi scuso per il ritardo nel rispondere.
    Ok funziona attivando php5
    Grazie..:)

    EDIT:

    Un altra domanda:
    Codice PHP:
    <?php
    $link_part
    = array('http://www.sito.com','http://www.sito2.com');
    $link_part_2 = array('http://www.web.com','http://www.web2.com');
    $link_part_3 = array('http://www.link.com','http://www.link2.com');
    //...e via così

    //codice per estrarre dominio
    $link_part_0 = array($link_part[0]);
    foreach (
    $link_part_0 as $link) {
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));
    $dominio_no_www_uc = ucfirst($dominio_no_www);
    echo
    "$dominio_no_www_uc:";
    };
    //fine codice per estrarre dominio

    for ($i=0; $i<count($link_part); $i++)
    echo
    "&nbsp;<a href = $link_part[$i]>Part($i)</a>&nbsp;-";

    ?>
    Risultato: http://bollywood2.altervista.org/qqq.php

    Il codice funziona perfettamente, ma quello che vorrei ottenere, è lo stesso risulato per ogni array ($link_part_2, $link_part_3, ...), senza dover ripetere ogni volta l'interro codice, e se per caso un giorno aggiungessi un nuovo array (Es: $link_part_8), questo mi elaborasse anche quest'ultimo array automaticamente.

    Quello che vorrei ottenere: http://bollywood2.altervista.org/qqq.html

    Qualche genio saprebbe come fare?, è se non e possibile farlo avete qualche soluzione altrenativa?

    Grazie in anticipo.
    Ultima modifica di alemoppo : 07-05-2011 alle ore 22.22.19 Motivo: edit

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,683

    Predefinito

    Per non ripetere ogni volta l'intero codice, hanno inventato le funzioni.

    Una cosa del genere:
    Codice PHP:
    function estrai_dominio($array)
    {
    $array_0 = array($array[0]);
    foreach (
    $array_0 as $link) {
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));
    $dominio_no_www_uc = ucfirst($dominio_no_www);
    echo
    "$dominio_no_www_uc:";

    for (
    $i=0; $i<count($array); $i++)
    echo
    "&nbsp;<a href = $array[$i]>Part($i)</a>&nbsp;-";
    }

    ...poi la richiami in questo modo:

    Codice PHP:
    $link_part = array('http://www.sito.com','http://www.sito2.com');
    $link_part_2 = array('http://www.web.com','http://www.web2.com');
    $link_part_3 = array('http://www.link.com','http://www.link2.com');

    estrai_dominio($link_part);
    estrai_dominio($link_part_2);
    estrai_dominio($link_part_3);

    p.s: È soltanto un esempio: non ho provato se funziona.

    Ciao!
    Ultima modifica di alemoppo : 07-05-2011 alle ore 22.24.02

  11. #11
    Guest

    Predefinito

    Mi scuso per il ritardo nella risposta.
    Allora alemoppo, il sistema che mi ha dato lei funziona alla perfezione:):):)

    Funzione:
    Codice PHP:
    function estrai_dominio($array)
    {
    $array_0 = array($array[0]);
    foreach (
    $array_0 as $link) {
    $dominio_no_www = str_replace("www.", "", parse_url($link, PHP_URL_HOST));
    $dominio_no_www_uc = ucfirst($dominio_no_www);
    echo
    "$dominio_no_www_uc:";
    };
    //<<<p.s. si è dimenticato di questo dettaglio.:):)XD

    for ($i=0; $i<count($array); $i++)
    echo
    "&nbsp;<a href = $array[$i]>Part($i)</a>&nbsp;-";
    }
    Richiamo funzione:
    Codice PHP:
    $link_part_1 = array('http://www.sito.com','http://www.sito2.com');
    $link_part_2 = array('http://www.web.com','http://www.web2.com');
    $link_part_3 = array('http://www.link.com','http://www.link2.com');

    estrai_dominio($link_part_1);
    estrai_dominio($link_part_2);
    estrai_dominio($link_part_3);
    Adesso il problema che voglio risolvere è: che se io vado ad aggiungere $link_part_4, voglio che mi si crei automaticamete estrai_dominio($link_part_4);, senza che io debba scriverlo manualmente.

    Come posso risolvere il problema?
    Quello che ho pensato io è: che prima bisogna creare una funzione che conti tutti i $link_part, $link_part_2, $link_part_3, $link_part_4, ...(gli faccio sempre in ordine cresente), succesivamente basterebbe la funzione "for" ed ottenere il risulato desiderato. Il problema è che non so come creare una funzione per contare tutti i "link_part", sinceramente non so nemmeno se questo sia possibile.:(:(.

    Qualche genio sà come fare?

  12. #12
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    questa potrebbe essere una soluzione, guarda se funziona perchè non l'ho provato:

    Codice PHP:
    //definisco queste due var:
    $link_part_tot=$link_part=array();

    $link_part_1 = array('http://www.sito.com','http://www.sito2.com');
    $link_part_2 = array('http://www.web.com','http://www.web2.com');
    $link_part_3 = array('http://www.link.com','http://www.link2.com');
    //qui aggiungi tutti i link_part4,5,6...ecc

    $link_part_tot=array_merge($link_part_1,$link_part_2,$link_part_3);//qui dovrai aggiungere gli altri array link_part4,5,6...ecc
    //oppure fai un unico array tot includendo tutti i links doppi:
    //$link_part_tot=array('http://www.sito.com','http://www.sito2.com','http://www.web.com','http://www.web2.com','http://www.link.com','http://www.link2.com');e così via....

    $num_part_tot=count($link_part_tot);
    $Nfor=($num_part_tot/2);//2 perchè è il conteggio di un link_part

    $a=0;

    for (
    $i=1, $i<=$Nfor,$i++){

    $link_part=array_slice($link_part_tot, 0+$a, 2);//vedi il manuale:serve per estrarre valori da un array impostando la posizione di partenza e la lunghezza

    estrai_dominio($link_part);

    $a=$a+2;
    }
    Ultima modifica di EuroSalute : 18-05-2011 alle ore 22.10.51 Motivo: più info...
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •