Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobieranie danych z www.filmweb.pl
alpin
post
Post #1





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 15.03.2004

Ostrzeżenie: (10%)
X----


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

Ten post edytował alpin 3.01.2007, 07:59:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nexis
post
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
alpin
post
Post #3





Grupa: Zarejestrowani
Postów: 79
Pomógł: 1
Dołączył: 15.03.2004

Ostrzeżenie: (10%)
X----


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 ?

Ten post edytował alpin 3.01.2007, 08:47:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:49