Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]pobieranie identyfikatora z yt
Forum PHP.pl > Forum > Przedszkole
ghastblood
Witam,
jak można pobrać ciąg znaków z adresu do filmiku na youtube

np:http://www.youtube.com/watch?v=7kv-VVf1jIg

i potrzebował bym żeby z tego adresy robił sie tylko identyfikator filmu 7kv-VVf1jIg
Fifi209
parse_url

ew. PCRE - dokładniej preg_match
kaktus283
Można do tego również użyć explode() - ale tylko w wypadku linków czystych (taki który podałeś, bez zbędnych funkcji w adresie (&fmt=hd, #player_query, etc...).

  1. <?php
  2. $link = 'http://www.youtube.com/watch?v=7kv-VVf1jIg';
  3. $explode = explode('=', $link);
  4. print_r($explode);
  5. ?>
sada
  1. $url='http://www.youtube.com/watch?v=7kv-VVf1jIg';
  2. preg_match('/\?v=([a-zA-Z0-9._-]{11})/',$url,$kod);
  3. echo $kod[1];
Prezi2907
Cytat(sada @ 14.02.2011, 16:05:34 ) *
  1. $url='http://www.youtube.com/watch?v=7kv-VVf1jIg';
  2. preg_match('/\?v=([a-zA-Z0-9._-]{11})/',$url,$kod);
  3. echo $kod[1];

Preg match nie zda egzaminu przy większej ilości wartości GET w adresie...

Ja tam przy explode by został a później sprawdzał każdą oddaną wartość... Sprawdzasz ilość elementów w tablicy która utowrzyła się przy pomocy explode()...

Później formularz dajesz pętle int z wartością od 0-n (n liczba wartości w tablicy) i wewnątrz dajesz jakiegoś inputa który pokazuje Ci wartości. Wyświetli wszystkie elementy i obok możesz zrobić checkboxa lub radio(polecam radio) i masz kątrolę nad tym co dodajesz itd... Wysyłasz to na serwer czy do bazy skąd jest później pobierane a jeśli chcesz by to w automacie gdzieś podawało to musisz znać mniej więcej strukturę tych identyfikatorów. lecisz funkcją preg_match wtedy dopiero każdy element i jeśli jakiś będzie odpowiedni to zostawiasz go zapisanego jako wartośc np $identyfikator = $array[n] ;

Dużo pisania w teori a w praktyce łatwo to wygląda... Ale kodu Ci nie napiszę bo to nie o to tutaj chodzi. potrzebne sprawy to tablice (array()) funkcja exlpode() preg_match() i na koniec znajomość formularzów i najlepiej metody przesłania informacji metodą POST... Prosta droga do zrobienia krótkiego interfejsu który pozwoli na kontrolę dodawanych informacji lub do automatu który nigdy się nie pomyli przy dodawaniu smile.gif
sada
[quote name='Prezi2907' date='14.02.2011, 18:06:58 ' post='837102']
Preg match nie zda egzaminu przy większej ilości wartości GET w adresie...
Pokaż mi taki url z youtube w którym wystąpi
?v=
i nie zadziała .

(bo czasami używają takiej formy /v/kod)
nekomata
  1. $link = 'http://www.youtube.com/watch?v=7kv-VVf1jIg';
  2. $link = str_replace('http://www.youtube.com/watch?v=','',$link);
  3. echo $link;

I po co się w preg_match bawić?
Piogola
  1. preg_match_all('@youtube\.(?:com|pl)/(?:watch\?v=|v/){1}([^&?#/"<]+)@si', $body, $youtube);
  2. if(isset($youtube[1]) AND is_array($youtube[1]) AND !empty($youtube[1])) {
  3. $youtube = array_unique($youtube[1]);
  4. // wsadzamy informacje do bazy danych
  5. }


http://www.tarnaski.eu/blog/wyciaganie-adr...nych-w-tekscie/
sada
Cytat(nekomata @ 14.02.2011, 18:56:48 ) *
I po co się w preg_match bawić?


bo to jak sądzę nie koniec adresu, a i chyba nie początek
nekomata
Cytat(sada @ 14.02.2011, 19:14:55 ) *
bo to jak sądzę nie koniec adresu, a i chyba nie początek

Tylko ze autor tematu napisal

Cytat(ghastblood @ 14.02.2011, 14:02:53 ) *
Witam,
jak można pobrać ciąg znaków z adresu do filmiku na youtube

np:http://www.youtube.com/watch?v=7kv-VVf1jIg

i potrzebował bym żeby z tego adresy robił sie tylko identyfikator filmu 7kv-VVf1jIg

Aktualnie lepiej chyba rozwiązywać problemy prostymi metodami niż wyciągać armatę przeciwko szczurkowi.
Jak ma konkretny link to najprościej jest po prostu wycinać zbędne.

@Piogola , dzięki za link do artykułu.. nie wiedziałem o tych zdjęciach wiec przyda się na pewno tongue.gif.

Prezi2907
Cytat(sada @ 14.02.2011, 18:37:08 ) *
Cytat(Prezi2907 @ 14.02.2011, 18:06:58 ) *

Preg match nie zda egzaminu przy większej ilości wartości GET w adresie...

Pokaż mi taki url z youtube w którym wystąpi
?v=
i nie zadziała .

(bo czasami używają takiej formy /v/kod)


Napisałem że przy większej ilości wartości odnośnie tego preg_matcha. Nie zwracam większej uwagi na system adresów w YT smile.gif napisał co chciałem a co kolega zrobi to już jego inwencja zależy co z takowym identyfikatorem zrobi ... smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.