nowyyy31
(nowyyy31)
2 Wrzesień 2009 18:42
#1
Witam
mam małe pytanie jak mogę wyciągnąć tylko ID filmów
http://www.youtube.com/watch?v=a-NZIGes3j0
z YouTube żeby wyciągnąć ten ciąg znaków a-NZIGes3j0
http://antyklerycow.wrzuta.pl/film/04s6 … z_3_pietra
z Wrzuta żeby wciągnąć tylko ten ciąg znaków 04s6a6Bh95F
jak to zrobić…?
MicMic
(Ghoost11)
2 Wrzesień 2009 19:27
#2
Poczytaj o funkcji explode()
http://pl.php.net/explode
Dajesz np. “/” za rozdzielnik, a później wystarczy zrzucić do zmiennej wartość tablicy o wybranym indeksie.
nowyyy31
(nowyyy31)
2 Wrzesień 2009 20:23
#4
na YouTube już działa…
<?
// YouTube!!
echo 'YouTube';
echo '
';
$url = 'http://www.youtube.com/watch?v=a-NZIGes3j0';
preg_match('/v=([a-zA-Z0-9_-]+)/i', $url , $ciag);
$idfilmu=$ciag[1];
echo $idfilmu;
echo '
';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
echo '
';
parse_str($url, $output);
echo $output['url'][1];
echo '
';
$ciąg = 'http://www.youtube.com/watch?v=a-NZIGes3j0';
$równa_się = strrpos($ciąg,'=');
$id = substr($ciąg,$równa_się+1);
echo $id;
?>
na Wrzuta jeszcze coś nie gra…
<?
// Wrzuta!!
echo '
';
echo 'Wrzuta';
echo '
';
$adres = 'http://antyklerycow.wrzuta.pl/film/04s6a6Bh95F/skok_do_basenu_z_3_pietra';
preg_match('|film\/([^/][a-zA-Z0-9_-]+)|i', $adres , $ciag);
$idfilmu=$ciag[1];
?>
api
(Sitemaster)
3 Wrzesień 2009 10:53
#5
Co nie gra? A tak na marginesie, wystarczy
preg_match('|film\/([^/]+)|i', $adres , $ciag);
etam
(etam)
3 Wrzesień 2009 15:48
#6
albo można też
preg_match('|film/(.+?)/|', $adres , $ciag);
Uwaga! ‘/’ trzeba escapować (czyli pisać stawiać ‘’ przed nim) tylko gdy regexpa zaczyna się i kończy znakiem ‘/’. Dlatego w przykładzie podanym przez api po “film” nie powinno być ‘’. ---- Youtuba można trochę zoptymalizować:
preg_match('/v=(.{11})/', $url , $ciag);
Poza tym: flaga ‘i’ (za regexpem np ‘/bla/i’) oznacza “incase sensitive” czyli nie zwraca uwagi na małe/wielki litery.