MrPaan

WikiPedia1

Aug 23rd, 2013
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.17 KB | None | 0 0
  1. <?php
  2.  
  3. // simple usage..
  4. //.php?search=
  5. if(isset($_REQUEST['search']) && !empty($_REQUEST['search'])){
  6.   $get = get_wiki_summary_ms(htmlentities($_REQUEST['search']));
  7.  
  8.   if($get == 3){
  9.     die("hasil carian tiada.");
  10.   }elseif($get == 4){
  11.     die("gagal mendapatkan info dari page wikipedia..");
  12.   }else{
  13.     echo $get;
  14.   }
  15. }else die("msukkan carian anda pada link, contoh example.php?search=php");
  16.  
  17. /**
  18.  * Error Code :-
  19.  * 3 - search x dijumpai..
  20.  * 4 - php gagal nk dptkan content dari wikipedia page..
  21.  */
  22. function get_wiki_summary_ms($search){
  23.  
  24.   // search keyword dkt wikipedia bahasa melayu..
  25.   $search_wiki = file_get_contents('https://ms.wikipedia.org/w/index.php?search='.urlencode($search).'&button=&title=Khas%3AGelintar');
  26.  
  27.   if(strpos($search_wiki, '<title>Hasil carian')){
  28.  
  29.     // kalau lepas carian dia x auto direct ke wiki content page, dia scrap data dkt search page pulak..
  30.     if(strpos($search_wiki, 'hasil yang sepadan')) return 3;
  31.     preg_match('/\<a\ href\=\"(\/wiki\/.*?)\"\ title\=\"/', $search_wiki, $search_ngn);
  32.    
  33.     // dh dpt jumpa page yng betul, request sekali lagi page tu then mskkan ke var $data..
  34.     $data = file_get_contents('https://ms.wikipedia.org'.$search_ngn[1]);
  35.    
  36.   } else {
  37.  
  38.     // kalau auto direct, masukkan je terus data page tu dalam var $data..
  39.     $data = $search_wiki;
  40.   }
  41.   preg_match_all('/\<p\>(.*?)\<\/p\>/', $data, $out);
  42.  
  43.   // loop dkt bawah nie buat checking kalau ada multiple <p></p>
  44.   $chk = false; // guna untuk simpan boolean smada php dpt parse content wiki or dop..
  45.   foreach($out[1] as $get_text){
  46.     $strip = strip_tags($get_text);
  47.    
  48.     // checking, korng leh improve content checking dkt sini.. ;)
  49.     if(strlen($strip) > 60 && !strpos($get_text, '//upload.wiki')){
  50.       $out[0] = $get_text;
  51.       $chk = true;
  52.       break;
  53.     }
  54.   }
  55.  
  56.   if(!$chk) return 4; // kalau x dpt nk parse content dlm wiki tu, dia return error code 4
  57.   $summary = preg_replace('/[\x00-\x1F\x80-\xFF]/', ', strip_tags($out[0])); // buang character yg bukan ascii..
  58.  $summary = preg_replace('/\[\d{1,4}\]/', ', $summary); // buang bracket string mcm [1] or [12]
  59.   return $summary;
  60. }
  61.  
  62. ?>
Advertisement
Add Comment
Please, Sign In to add comment