Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Problem z rozdzielaniem linka
Forum PHP.pl > Forum > Przedszkole
sztyvny
Witam. Przerabiam pewien skrypt i potrzebuję, żeby z linku z youtube otrzymać te literki filmu (czyli to co znajduje się po = w linku do video). Napisałem taki kod ale niestety nie działa. Co zrobiłem źle?
  1. $photo_file = stripinput($submit_criteria['photo_filename']);
  2. $photo_file = str_replace( '&', ' ', $photo_filen);
  3. $photo_filen[0] = str_replace('=', ' ', $photo_filena);
  4. $photo_filename = $photo_filena[1];


Bardzo proszę o pomoc i z góry dziękuję
erix
parse_url + parse_str i dostaniesz tablicę asocjacyjną, po co tak kombinować...
sztyvny
Cytat(erix @ 24.07.2010, 21:45:15 ) *
parse_url + parse_str i dostaniesz tablicę asocjacyjną, po co tak kombinować...

Możesz wytłumaczyć dokładniej? Bo jestem w tym zielony..

rozumiem jak użyć parse_str tylko jak można usunąć to po znaku '&' przy linku? i tak, żeby jeśli nie będzie '&' to skrypt po prostu 'przejdzie dalej' czyli nic nie zrobi
muk4
Alrogithmus:
1.Parsujesz adres funkcją parse_url.
2.Wynik masz w tablicy - klucz 'query'
3.Potem usuwasz 'v=' z wyniku np. przez str_replace albo substr
4.Masz wynik.
sztyvny
  1. parse_url($photo_file);
  2. $photo_filen = $photo_file[query];
  3. $photo_filename = str_replace('v=', ' ', $photo_filen);

taki kod napisałem i przy linku http://www.youtube.com/watch?v=_ToxlCfV7us...feature=popular otrzymałem wynik 'h'.... jakie błędy znowu zrobiłem?
muk4
W takim przypadku raczej wypada użyć substr
  1. <?php
  2. $url = 'http://www.youtube.com/watch?v=_ToxlCfV7us&feature=popular'; //adres
  3. $res = parse_url($url); //parsujesz
  4. $result = substr($res['query'], 2, 11); // 2 oznacza od którego znaku zacząć, 11 oznacza długość łańcucha
  5. echo $result;
  6. ?>
sztyvny
Dzięki wielkie. A jeszcze takie pytanie czy dało by radę aby zamiast długości łańcucha podawać do jakiego znaku ma być? Mam nadzieję, że każdy film z youtube ma 11 znakową 'nazwę' filmu ale niestety nie mogę mieć pewności ;/
muk4
Sprawdziłem z 15 filmików. Jeśli się mylę to pozostaje regexp.
sztyvny
Też sporo sprawdziłem. Mam nadzieję że się nie zmieniają winksmiley.jpg a możesz rozwinąć o co chodzi z tym regexp?
iVorIus
Albo explode po znaku "=".
muk4
Cytat(sztyvny @ 24.07.2010, 23:32:00 ) *
Też sporo sprawdziłem. Mam nadzieję że się nie zmieniają winksmiley.jpg a możesz rozwinąć o co chodzi z tym regexp?


regexp -> Regular Expression -> Wyrażenia Regularne
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.