Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem ze skryptem (wyrażenia regularne), Program, który przeglądając wikipedię stworzy listę osób
deathknell1982
post 11.10.2011, 10:57:30
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 11.10.2011

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


Dzień dobry.
Mam problem z zadaniem o treści: Program, który przeglądając zasoby polskojęzycznej wikipedii stworzy listę osób (nazwisko imię) tam występujących. Lista powinna zawierać wszystkie osoby uporządkowane w kolejności alfabetycznej wg nazwisk. Dla realizacji programu przydatna będzie lista imion (plik i.txt).

Zacząłem coś kombinować, trochę mi kolega pomagał, ale nie całkiem nam to działa (żeby nie napisać, że prawie wcale).

Proszę o pomoc.


  1. <?php
  2. header("Content-Type: text/html; charset=utf-8");
  3. $url = "http://pl.wikipedia.org/wiki/Kategoria:Polacy";
  4. $temp = "temp.txt";
  5. $imiona = file( "i.txt" );
  6. $wyn = fopen( "osoby.txt", "a" );
  7. $last = "";
  8. while( $url != "" ) {
  9. copy( $url, $temp );
  10. $fp = fopen( $temp, "r" );
  11. $page = fread( $fp, filesize( $temp ) );
  12. fclose( $fp );
  13. $pattern = '|<a href="/wiki/(.*)" title="(.*)">(.*)</a>|U';
  14. preg_match_all( $pattern, $page, $out, PREG_PATTERN_ORDER );
  15. for( $i=0; $i<count($out[2]); $i++ ) {
  16. for( $j=0; $j<count($imiona); $j++ ) {
  17. $imie = trim( $imiona[$j] );
  18. $wpis = trim( $out[2][$i] );
  19. if( @eregi( '^'.$imie, $wpis ) ) {
  20. $osoba = iconv( "utf-8", "iso-8859-2", $wpis );
  21. fwrite( $wyn, $osoba."\n" );
  22. print 'zapisano: '.$wpis.'<br>';
  23. $last = $out[1][$i];
  24. }
  25. }
  26. }
  27. if( $last != "" ) {
  28. $url = "http://pl.wikipedia.org/wiki/".$last;
  29. $last = "";
  30. }
  31. $url = "";
  32. }
  33. fclose( $wyn );
  34. ?>

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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:31