-
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?
-
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!
-
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
-
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!
-
e se volessi estrarre l'url dal link , anche se l'url non è all'inizio della stringa?
grazie mille :)
-
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 :lol:), una soluzione abbastanza brutta sarebbe:
Codice PHP:
$varlink = substr($varlink,strpos('http://'),strpos(' '));
Ovvero restituisce da "http://" fino al prossimo spazio (almeno, dovrebbe :lolloso:)
Ciao!
-
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..";