Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wyciągnięcie id filmu z ww.ochevidets.ru
Forum PHP.pl > Forum > Przedszkole
omxd
Witam,
potrzebuję wyciągnąć id z filmów w serwisie ochevidets.ru z linku url.O ile z yt albo liveleak jest to w miarę proste bo id jest zawarty w głównym adresie URL tutaj wygląda to trochę dziwnie.
Adres url:
  1. http://www.ochevidets.ru/rolik/61795/

embed:
  1. <embed type="application/x-shockwave-flash" width="400" height="325" allowfullscreen="true" src="http://www.ochevidets.ru/player/flowplayer.swf" flashvars='config={"playlist":[{"url":"http://www.ochevidets.ru/wcmfiles/1392051437.jpg","scaling":"scale"},{"url":"http://www.ochevidets.ru/wcmfiles/1392051437.mp4","autoPlay":false,"autoBuffering":true}],"key":"$9fdc9ec5610b934b296"}' />

Jak widać nijak się ma do id z linku.
Ktoś ma jakiś pomysł na rozwiązanie tego problemu?
podrawiam
matiit
Pobierasz curlem stronę i jakimś regexem szukasz pliku mp4.
mimol
po co curl?
wystarczy file_get_content
matiit
Czasem trzeba dawać różne śmieszne opcje, np. chociażby user-agenta, ale czasem jakieś inne, bardziej zaawansowane i wtedy curlem wg mnie wygodniej.
omxd
słaby jestem w regularnych próbuje łopatologiczniez kiepskim skutkiem.
Jest dałby jakaś dokładniejszą radę?
  1. $url = "http://www.ochevidets.ru/rolik/51406/";
  2. $ch = curl_init();
  3. curl_setopt ($ch, CURLOPT_URL, $url);
  4. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
  6. $result = curl_exec($ch);
  7. curl_close($ch);
  8. $user = strstr($result, '<embed'); // As of PHP 5.3.0
  9. $user = strstr($user, 'type="text">',true); // As of PHP 5.3.0
  10.  
  11. $arr = explode("url",$user);
  12.  
  13. echo $arr[1];
_Borys_
  1. <?php
  2.  
  3. $url = "http://www.ochevidets.ru/rolik/51406/";
  4. $ch = curl_init();
  5. curl_setopt($ch, CURLOPT_URL, $url);
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  7. $result = curl_exec($ch);
  8. curl_close($ch);
  9. preg_match('/\/(\d+)\.(?:mp4|avi|mpg)/', $result, $m);
  10. echo $m[1];
  11.  
  12. ?>

Jak będą inne formaty to pododawaj tu gdzie masz (?:mp4|avi|mpg)

Albo pobranie z końcówką
  1. preg_match('/\/(\d+\.(?:mp4|avi|mpg))/', $result, $m);
omxd
dzięki!

nie mogę połapać się w tych wyrażeniach regularnych.
Z wyciągniętej strony jak powyżej ,a dokładnie z ramki
  1. <iframe width="640" height="360" src="http://www.liveleak.com/ll_embed?f=72415bff2b36" frameborder="0" allowfullscreen></iframe>
próbuję wyciągnąć zawartość 'f=' ,ale wychodzą kompletne bzdury.


Mógłbym prosić kogoś o podpowieć?
  1. preg_match('/\/(\d+)\.(?)/f=', $result, $m);

pozdrawiam
Daimos
  1. $html = '<iframe width="640" height="360" src="http://www.liveleak.com/ll_embed?f=72415bff2b36" frameborder="0" allowfullscreen></iframe>';
  2.  
  3. preg_match('/ll_embed\?f\=([a-zA-Z0-9]+)/', $html, $m);
Johnas
Borys jesteś moim bogiem smile.gif Ja również pisałem pobierani linku do filmów z serwisu cda.pl i mój kod zawierał więcej linijek kodu, no ale doświadczeni programiści potrafią ułatwiać sobie życie i jesteś tego żywym przykładem. Może być tak, że link działa na twojej stronie przez dwie godziny ze względu na brak utworzonej sesji na serwerze z filmem, ale i na to jest sposób. Wystarczy otworzyć stronę z filmami na niewidzialnym frame i wszystko powinno działać poprawnie.
_Borys_
Wow, pierwszy raz tak ktoś mnie nazwał, miło to słyszeć. Dzięki za słowa uznania:)
omxd
przykład działa fajnie ,ale embed pojawia sie dopiero po kliknięciu ikony,kod nie widzi tej wartości.
sytułacja bez wyjścia?
  1.  
  2. $url = 'http://www.liveleak.com/view?i=327_1392119908';
  3. $ch = curl_init();
  4. curl_setopt($ch, CURLOPT_URL, $url);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  6. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
  7. $result = curl_exec($ch);
  8. curl_close($ch);
  9. preg_match('/ll_embed\?f\=([a-zA-Z0-9]+)/', $result, $m);
  10. echo $result;
  11. //var_dump($m);

pozdrawiam

dla potomnych - jeśli ktoś trafi kiedyś na ten problem podaje solucje:
  1. $url = 'http://www.liveleak.com/view?i=327_1392119908';
  2. $ch = curl_init();
  3. curl_setopt($ch, CURLOPT_URL, $url);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
  6. $result = curl_exec($ch);
  7. curl_close($ch);
  8.  
  9. preg_match("/generate_embed_code_generator_html\(\'([^']*)/", $result, $m);
  10. echo $m[1]; // 72415bff2b36
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.