youtube url aanpassen met preg_replace

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stefan Renne

stefan Renne

01/09/2010 18:03:49
Quote Anchor link
ik vroeg me af of iemand mij kan helpen om uit een youtube url (vb: http://www.youtube.com/v/-LzGJozwZDY of http://www.youtube.com/watch?v=ks0P1u6-OUY&feature=channel)
de video code (vb: -LzGJozwZDY of ks0P1u6-OUY) te halen (denk zelf dat via preg_replace het makkelijkst is)

alvast bedankt!
groetjes stefan
 
PHP hulp

PHP hulp

28/01/2021 04:12:20
 
Chris -

Chris -

01/09/2010 18:13:46
Quote Anchor link
Nee, kijk even naar parse_url ;-)
 
Stefan Renne

stefan Renne

01/09/2010 18:48:48
Quote Anchor link
jaja .... heb je mss een klein voorbeeldje voor me?
 
Niek s

niek s

01/09/2010 18:52:23
Quote Anchor link
Stefan Renne op 01/09/2010 18:48:48:
jaja .... heb je mss een klein voorbeeldje voor me?


Ja. En die staat op php.net. Volg die link maar eens!
 
Www JdeRuijterNL

www JdeRuijterNL

01/09/2010 18:52:49
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$compleet = 'http://www.youtube.com/v/-LzGJozwZDY' ;
$stripped =  str_replace('http://www.youtube.com/v/', '', $compleet);

tadaa
 
Stefan Renne

stefan Renne

01/09/2010 18:57:24
Quote Anchor link
die checkt alleen niet of er nog iets achter staat, denk aan: bv &feature=channel
Gewijzigd op 01/09/2010 18:58:23 door stefan Renne
 
Jens V

Jens V

01/09/2010 19:11:29
Quote Anchor link
Ik weet niet of het helemaal juist is zo, maar hier zou je het mee moeten kunnen doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php

$array
= parse_url($url);
$query = $array['query'];

$gets = explode('&', $query);
$found = false;
for($i = 0; $i < count($gets) && !$found; $i++)
{

    $key = explode('=', $gets[$i]);
    
    if($key[0] == 'v')
        $found = true;
}


// je code zit dan in $key[1]
?>


Jens
 
Stefan Renne

stefan Renne

01/09/2010 19:12:14
Quote Anchor link
vind je het erg als ik het niet snap :P
 
Jens V

Jens V

01/09/2010 19:16:29
Quote Anchor link
Stefan Renne op 01/09/2010 19:12:14:
vind je het erg als ik het niet snap :P


Als je op php.net kijkt zie je dat parse_url een url helemaal ontleedt en terug geeft in een array. Een van die waarden in de array is query. Die query is alles na het ?
Dit geeft voor http://www.youtube.com/watch?v=ks0P1u6-OUY&feature=channel -> v=ks0P1u6-OUY&feature=channel.

Dit ga je dan exploden op '&', dan krijg je een array met daarin de twee volgende waarde:
v=ks0P1u6-OUY en feature=channel

Die ga je dan exploden op '=', waardoor je een array krijgt met deze twee waarden:
v en ks0P1u6-OUY. Als je waarde 'v' is, dan gaat hij stoppen met dat te doen en heb je je waarde in die $key[1] zitten.

Jens

Edit:
Zoals ik al zei is die code niet getest eh. Dat zal je zelf moeten doen.
Gewijzigd op 01/09/2010 19:17:36 door Jens V
 
Stefan Renne

stefan Renne

01/09/2010 19:46:22
Quote Anchor link
aaaaah nu snap ik hem, tnx voor je duidelijke uitleg!
 
Jens V

Jens V

01/09/2010 20:00:16
Quote Anchor link
Np :)
Werkt het volledig?
 
Arjan -

Arjan -

01/09/2010 20:15:16
Quote Anchor link
Je kan ook dit gebruiken (veel makkelijker dan parse_url):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$url
= 'http://www.youtube.com/watch?v=vLHleQ5ER3o'

$video_id = preg_replace('/^[^v]+v.(.{11}).*/', '\\1', $url);

echo $video_id;
?>
Gewijzigd op 01/09/2010 20:20:56 door Arjan -
 
Niek s

niek s

01/09/2010 20:16:14
Quote Anchor link
Stefan Renne op 01/09/2010 19:12:14:
vind je het erg als ik het niet snap :P


Ja.

Hebben we hier iets aan?[/modedit]
Antwoord: Ja.
Gewijzigd op 02/09/2010 15:51:25 door niek s
 
Stefan Renne

stefan Renne

02/09/2010 10:18:37
Quote Anchor link
@Jens V werkt super, wat ik me wel afvraag is hoe je uit een complete text een youtube url kan halen en deze meteen kan vervangen voor de youtube html code (net zoiets als smf forum doet)
 
Jens V

Jens V

02/09/2010 11:42:51
Quote Anchor link
Voor reguliere expressies moet je niet bij mij zijn, dat is niet zo mijn sterkste kan... Sorry ;)
 
Chris -

Chris -

02/09/2010 12:39:56
Quote Anchor link
Arjen - op 01/09/2010 20:15:16:
Je kan ook dit gebruiken (veel makkelijker dan parse_url):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$url
= 'http://www.youtube.com/watch?v=vLHleQ5ER3o'

$video_id = preg_replace('/^[^v]+v.(.{11}).*/', '\\1', $url);

echo $video_id;
?>


Let wel even op Arjen, jij doet checken op 11 tekens achter de V. Als youtube besluit om meer dan 11 tekens te gaan gebruiken (Als ze meer dan a-zA-Z0-9_- ^ 11 = ~73.786.976.294.838.206.464 video's krijgen tenminste, of een andere syntax met meer of minder code's..) dan werkt jouw code niet meer ;-)
 
Jelmer -

Jelmer -

02/09/2010 14:01:07
Quote Anchor link
Je kan ook parse_str gebruiken om het query-deel van ded url te parsen. Dat is de functie die php zelf gebruikt om $_GET en (in sommige gevallen) $_POST te vullen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.