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