Visualizzazione risultati 1 fino 7 di 7

Discussione: Cercare in una stringa

  1. #1
    Guest

    Unhappy Cercare in una stringa

    salve a tutti avrei una domanda da porvi:

    ho una variabile :

    Codice PHP:
    $varlink = "http://www.miosito.it/pagina.php?id=1 bla bla";
    ora vorrei estrarre da questa variabile solo

    Codice HTML:
    http://www.miosito.it/pagina.php?id=1
    anche se ogni volta id e sempre diverso .

    Come faccio?

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

    Predefinito

    Codice PHP:
    $varlink = "http://www.miosito.it/pagina.php?id=1 bla bla";
    $varlink = substr($varlink,0,strpos(' '));
    Non l'ho provata, ma teoricamente dovrebbe estrarti il testo dall'inizio alla prima occorrenza di uno spazio.

    Ciao!
    Ultima modifica di alemoppo : 16-02-2010 alle ore 16.02.20

  3. #3
    Guest

    Predefinito

    grazie per l'aiuto,
    cmq mi sono reso conto che volevo fare e un'altra cosa :

    volevo validare il link di youtube.

    ho trovato questa funzione che fa al mio caso:

    Codice PHP:
    function ControlloYoutube($url){
    if(
    preg_match('/^http:\/\/(?:[A-Za-z0-9.]{2,5}\.)?youtube.com\/watch\?v=([0-9A-Za-z-_]{11})$/', $url)){
    return
    true;
    }else{
    return
    false;
    }
    }
    ora però ho un altro problema : vorrei estrarre questo link come faccio?

    grazie

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

    Predefinito

    Non ho capito.
    Credo la tua pagina sia una cosa del genere:
    Codice PHP:
    $indirizzo = $_POST['url']; //acquisisco l'url (è un esempio.. poteva eesere GET o prelevato in altri modi...
    if(ControlloYouTube($indirizzo))
    {
    //faccio qualcosa. Il link è contenuto dentro la variabile $indirizzo
    }
    else
    die(
    'Il link non è valido');
    EDIT:

    Come scritto nel commento, l'indirizzo è in $indirizzo (o comunque nella variabile che passi alla funzione ControlloYouTube()).

    Ciao!
    Ultima modifica di alemoppo : 16-02-2010 alle ore 16.38.53

  5. #5
    Guest

    Predefinito

    e se volessi estrarre l'url dal link , anche se l'url non è all'inizio della stringa?

    grazie mille :)

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

    Predefinito

    La cosa migliore sarebbe quella di usare le espressioni regolari, come hai fatto per verificare se è un link valido. Ma visto che io non sono molto esperto (per conto mio le ho usate solo 1 volta ), una soluzione abbastanza brutta sarebbe:

    Codice PHP:
    $varlink = substr($varlink,strpos('http://'),strpos(' '));
    Ovvero restituisce da "http://" fino al prossimo spazio (almeno, dovrebbe )

    Ciao!

  7. #7
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    Codice PHP:
    function ControlloYoutube($url){
    if(
    preg_match('/^http:\/\/(?:[A-Za-z0-9.]{2,5}\.)?youtube.com\/watch\?v=([0-9A-Za-z-_]{11})$/', $url, $match)){
    return
    $match;
    }else{
    return
    false;
    }
    }
    Se è un link di youtube la funzione restituisce un array.
    Il primo parametro dell'array può anche essere vuoto (? = {0,1} = zero o una occorrenza) mentre il secondo sarà l'id del video ({11} = 11 occorrenze):
    Codice PHP:
    $match = ControlloYoutube("http://www.youtube.com/watch?v=_z-hEyVQDRA");

    if(
    $match)
    print_r($match);
    else
    echo
    "niente..";
    Ultima modifica di mycarlo : 16-02-2010 alle ore 20.19.23

Regole di scrittura

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