Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie danych z www.filmweb.pl
Forum PHP.pl > Forum > Przedszkole
alpin
Witam mam pare problemow .. Jakos zmodernizowalem funkcje uzytkownika Crash ale nie do konca dziala tak jakbym chcial ..
oto kod :
  1. <?php
  2.  
  3. function getMovieInfo( $adres )
  4. {
  5. $info = array();
  6. $data  = file( $adres );
  7.  
  8. foreach( $data as $n => $line )
  9. {
  10. if( strpos( $line, 'opisy' ) !== false )
  11. {
  12. if( preg_match( '/href="([^"]+)"/', $line, $out ) )
  13. {
  14. $url3 = $out[ 1 ];
  15. break;
  16. }
  17. }
  18. }
  19.  
  20. if( count( $data ) > 0 )
  21. {
  22. $data = implode( $data );
  23.  
  24. if( preg_match( '#<div id="filmTitle">([^<]+)<span class="otherTitle">#', $data, $out ) )
  25. {
  26. $info[ 'title' ][ 'polish' ]  = trim( $out[ 1 ] );
  27. }
  28.  
  29. if( preg_match( '#<div id="filmTitle">[^<]+<span class="otherTitle">([^>]+)</span>#', $data, $out ) )
  30. {
  31. //trim( preg_replace( '/^AKA /', '', html_entity_decode( $out1[ 1 ] ) ) );
  32. $info[ 'title' ][ 'original' ] = trim( $out[ 1 ] );
  33. }
  34.  
  35. if( preg_match( '#s+(([0-9]+))s+</span>s+<span class="otherTitle">s+</span>s+<br/>s+</div>#', $data, $out ) )
  36. {
  37. $info[ 'rok' ] = $out[ 1 ];
  38. }
  39.  
  40. if( preg_match_all( '#(country|genre).id=[0-9]+">([^<]+)#', $data, $out ) )
  41. {
  42. foreach( $out[ 1 ] as $key => $type )
  43. {
  44. $info[ $type ][] = $out[ 2 ][ $key ];
  45. }
  46. }
  47.  
  48. if ( preg_match ('#<b>([^<]+)</b>[^<]+((Polska))#', $data, $out) ) 
  49. {
  50. $info[ 'premiere' ][ 'poland' ] = $out[1];
  51. }
  52.  
  53. if ( preg_match ('#<b>([^<]+)</b>s+(Świat)#', $data, $out1) ) 
  54. {
  55. $info[ 'premiere' ][ 'world' ] = $out[1]; 
  56. }
  57.  
  58. if( preg_match( '#czas trwania: ([0-9]+)#', $data, $out ) )
  59. {
  60. $info[ 'time' ] = $out[ 1 ];
  61. }
  62.  
  63. if( preg_match_all( '#(reżyseria|scenariusz|zdjęcia|muzyka)t+?<a class="colorUnderline" href="http://www.filmweb.pl/[^>]+" title="(.+?)- filmografia#', $data, $out ) )
  64. {
  65. $names = array(
  66. 'reżyseria' => 'director',
  67. 'scenariusz' => 'screenplay',
  68. 'zdjęcia' => 'photos',
  69. 'muzyka'  => 'music'
  70. );
  71.  
  72. foreach( $out[ 1 ] as $key => $type )
  73. {
  74. $info[ 'people' ][ $names[ $type ] ] = $out[ 2 ][ $key ];
  75. }
  76. }
  77.  
  78. if( preg_match_all( '#<div class="filmActor">s+<a class="filmActor" href="http://[^>]+" title="[^>]+">([^>]+)</a>s+</div>s+<div class="filmRoleSeparator">:</div>s+<div class="filmRole">s+([^>]+) s+</div>s+#', $data, $out ) )
  79. {
  80. foreach( $out[ 1 ] as $key => $who )
  81. {
  82. $info[ 'cast' ][ html_entity_decode( $who ) ] = trim ( html_entity_decode( $out[ 2 ][ $key ] ) );
  83. }
  84. }
  85.  
  86. if( preg_match( '#<div id="filmPhoto">s+<a href="(http://gfx.filmweb.pl/[^>]+.jpg)#', $data, $out ) )
  87. {
  88. $info[ 'poster' ] = $out[ 1 ];
  89. }
  90.  
  91. if( isset( $url3 ) )
  92. {
  93. $data = implode( '', file( $url3 ) );
  94. if( preg_match_all( '/<li><div align="justify">(.+)</div></li>/', $data, $out ) )
  95. {
  96. $info[ 'opisy' ] = $out[ 1 ];
  97. }
  98. }
  99.  
  100. if( count( $info[ 'opisy' ] ) > 0 )
  101. {
  102. foreach( $info[ 'opisy' ] as $n => $plot )
  103. {
  104. $info[ 'opisy' ][ $n ] = trim( preg_replace( '/[.+]/', '', str_replace( array( "r", "n", '<br/>' ), '', $plot, $ch ) ) );
  105. }
  106. }
  107. }
  108. return $info;
  109. }
  110. ?>
  111. <?php
  112. $a1="http://casino.royale.filmweb.pl/";
  113. $a2="http://czlowiek.pies.filmweb.pl/";
  114. $a3="http://www.filmweb.pl/Film?id=699"; //sara
  115. $a4="http://www.filmweb.pl/Film?id=101191"; //ono
  116. $a5="http://holiday.filmweb.pl/";
  117. $a6="http://www.filmweb.pl/Film?id=4850";
  118. $a7="http://psy.filmweb.pl/";
  119. $a8="http://pasja.filmweb.pl/";
  120.  
  121. print_r( getMovieInfo( $a1 ) );
  122. ?>

Moje problemy :
1) Czemus nie chce mi wyswietlac $info[ 'premiere' ][ 'world' ], domyslam sie iz jest to cos zwiazane z kodowaniem , bo w kodzie jest literka "Ś" i chyba przez to nie dziala, bo ten sam problem jest w reżyseria i zdjęcia... bo kod raczej powinnien byc poprawny
2) najwazniejszy problem .. nie wiem jak rozwiazac wyciaganie tytulu oryginalnego .. istnieja 3 mozliwosci kodu
pierwsza mozliwosc :
  1. <?php
  2. <!-- == Film title text ================= -->
  3.  
  4. <div id="filmTitle">
  5. Człowiek pies
  6. <span class="otherTitle">Danny the Dog </span>
  7. <span class="otherTitle">
  8. (AKA Unleashed (I)) 
  9. (2005)
  10. </span>
  11. <span class="otherTitle">
  12. </span>
  13.  
  14. <br/>
  15. </div>
  16.  
  17. <!-- == Film ranking header part ======== -->
  18. ?>

z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Danny the Dog

druga mozliwosc:
  1. <?php
  2. <!-- == Film title text ================= -->
  3. <div id="filmTitle">
  4. Sara
  5. <span class="otherTitle">
  6. (AKA Sarah) 
  7.  
  8. (1997)
  9. </span>
  10. <span class="otherTitle">
  11. </span>
  12. <br/>
  13. </div>
  14.  
  15. <!-- == Film ranking header part ======== -->
  16. ?>


z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Sarah

i 3 przypadek
  1. <?php
  2. <!-- == Film title text ================= -->
  3. <div id="filmTitle">
  4. Ono
  5. <span class="otherTitle">
  6. (1989)
  7. </span>
  8.  
  9. <span class="otherTitle">
  10. </span>
  11. <br/>
  12. </div>
  13.  
  14. <!-- == Film ranking header part ======== -->
  15. ?>

z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Ono
czyli przypisac tytul polski do oryginalnego kiedy nie ma innych ...

Mam nadzieje iz w miare jasno przedstawilem swoje problemy i ktoś mi pomoze winksmiley.jpg Z gory dziekuje
nexis
Cytat(alpin @ 3.01.2007, 07:40:29 ) *
z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Danny the Dog


U mnie bynajmniej tak właśnie jest.

Cytat(alpin @ 3.01.2007, 07:40:29 ) *
z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Sarah


  1. <?php
  2. $info['title']['original'] = str_replace("(AKA ", "", $info['title']['original']);
  3. $info['title']['original'] = str_replace(")", "", $info['title']['original']);
  4. ?>


Cytat(alpin @ 3.01.2007, 07:40:29 ) *
z takiego przypadku chce wyciagnac do $info[ 'title' ][ 'original' ] = Ono


  1. <?php
  2. if ((!eregi('AKA', $info['title']['original'])) && (eregi('(', $info['title']['original']))) {
  3.  $info['title']['original'] = $info['title']['polish'];
  4. }
  5. ?>
alpin
Dziekuje za odpowiedz ale niestety nie pomogla ..
  1. <?php
  2. $info['title']['original'] = str_replace("(AKA ", "", $info['title']['original']);
  3. $info['title']['original'] = str_replace(")", "", $info['title']['original']);
  4. ?>

zwraca
  1. <?php
  2. Sarah 
  3. (1997
  4. )
  5. ?>

a powinno tylko Sarah, nie wiem, moze mnie nie zrozumiales ale ja nie wiem kiedy na jaki przypadek trafie, to musi tak jakos dzialac ze na co by nie trafilo to wyciagnelo tak jak opisalem winksmiley.jpg ale dziekuje za checi
p.s. a premiere swiat wyswietla Ci ? i rezyseria i zdjecia ?
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.