MrPaan

WikiPedia

Aug 23rd, 2013
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.50 KB | None | 0 0
  1. <?php
  2.  
  3. // simple usage..
  4.  
  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{
  16.   ?>
  17.   <center>
  18.   <br>
  19.   <h1> Tahukah anda.. </h1>
  20.   <br>
  21.   <br>
  22.   <br>
  23.   <?php
  24.   echo tahukah_anda();
  25.   ?>
  26.   <br>
  27.   </center>
  28.   <?php
  29. }
  30.  
  31. /**
  32.  * Error Code :-
  33.  * 3 - search x dijumpai..
  34.  * 4 - php gagal nk dptkan content dari wikipedia page..
  35.  */
  36. function get_wiki_summary_ms($search){
  37.  
  38.   // search keyword dkt wikipedia bahasa melayu..
  39.   $search_wiki = file_get_contents('https://ms.wikipedia.org/w/index.php?search='.urlencode($search).'&button=&title=Khas%3AGelintar');
  40.  
  41.   if(strpos($search_wiki, '<title>Hasil carian')){
  42.  
  43.     // kalau lepas carian dia x auto direct ke wiki content page, dia scrap data dkt search page pulak..
  44.     if(strpos($search_wiki, 'hasil yang sepadan')) return 3;
  45.     preg_match('/\<a\ href\=\"(\/wiki\/.*?)\"\ title\=\"/', $search_wiki, $search_ngn);
  46.    
  47.     // dh dpt jumpa page yng betul, request sekali lagi page tu then mskkan ke var $data..
  48.     $data = file_get_contents('https://ms.wikipedia.org'.$search_ngn[1]);
  49.    
  50.   } else {
  51.  
  52.     // kalau auto direct, masukkan je terus data page tu dalam var $data..
  53.     $data = $search_wiki;
  54.   }
  55.   preg_match_all('/\<p\>(.*?)\<\/p\>/', $data, $out);
  56.  
  57.   // loop dkt bawah nie buat checking kalau ada multiple <p></p>
  58.   $chk = false; // guna untuk simpan boolean smada php dpt parse content wiki or dop..
  59.   foreach($out[1] as $get_text){
  60.     $strip = strip_tags($get_text);
  61.    
  62.     // checking, korng leh improve content checking dkt sini.. ;)
  63.     if(strlen($strip) > 60 && !strpos($get_text, '//upload.wiki')){
  64.       $out[0] = $get_text;
  65.       $chk = true;
  66.       break;
  67.     }
  68.   }
  69.  
  70.   if(!$chk) return 4; // kalau x dpt nk parse content dlm wiki tu, dia return error code 4
  71.   $summary = preg_replace('/[\x00-\x1F\x80-\xFF]/', ', strip_tags($out[0])); // buang character yg bukan ascii..
  72.  $summary = preg_replace('/\[\d{1,4}\]/', ', $summary); // buang bracket string mcm [1] or [12]
  73.   return $summary;
  74. }
  75.  
  76. function tahukah_anda(){
  77.   $get = file_get_contents('https://ms.wikipedia.org/wiki/Wikipedia:Tahukah_anda');
  78.   preg_match_all('/\<li\>([^\/wiki\/][\"\.\.\.].*?)\<\/li\>/', $get, $out_tahukah);
  79.   return strip_tags($out_tahukah[1][array_rand($out_tahukah[1])]);
  80. }
  81.  
  82. ?>
Advertisement
Add Comment
Please, Sign In to add comment