Labels

Tra cứu (CVT) :
(CVT) mới : TTYL

Mã nguồn chương trình Máy tìm kiếm Chữ viết tắt trên Internet


PHỤ LỤC

PHỤ LỤC 1- MÃ NGUỒN CHƯƠNG TRÌNH MÁY TÌM KIẾM CVT TRÊN INTERNET

Chương trình: thuthapv5.php

<html>

<head>

<meta http-equiv="Content-Language" content="vi">

<meta name="GENERATOR" content="Microsoft FrontPage 5.0">

<meta name="ProgId" content="FrontPage.Editor.Document">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Cập nhập chữ viết tắt mới tự động từ URL.</title>

<style type="text/css">

<!--

body,td,th {

      color: #0000FF;

}

.style1 {color: #FF0000}

.style4 {color: #0000FF}

.style6 {color: #0000FF; font-weight: bold; }

.style14 {color: #CC0033}

.style24 {

      color: #FFFF00;

      font-size: 18px;

}

.style25 {color: #CC0033; font-weight: bold; }

.style27 {

      font-size: 18px;

      font-weight: bold;

}

-->

</style>

 

<?PHP

error_reporting(0);

/* ===============================================================

* thuthapv5.php

* Scrip tìm kiếm chữ viết tắt mới từ URL lưu vào CSDL MySQL

==================================================================

*/

//------ Ham kiem tra loai bo nhung chuoi khong la chu viet tat:

function testdauhieucvt($string)

{

$loaibo="á|à|ả|ã|ạ|ă|ắ|ằ|ẳ|ẵ|ặ|â|ấ|ầ|ẩ|ẫ|ậ|é|è|ẻ|ẽ|ẹ|ê|ế|ể|ễ|ệ|í|ì|ỉ|ĩ|ị|ó|ò|ỏ|õ|ọ|ô|ố|ồ|ổ|ỗ|ộ|ú|ù|ủ|ũ|ụ|ư|ứ|ừ|ử|ữ|ựa|b|c|d|g|h|i|k|l|n|o";

$loaibo= $loaibo ."|q|r|s|t|\+|,|\'|\"|\)|\:|\?|[s]|\//|[$]" ;

if (ereg ($loaibo, $string))  //Nếu (...) có chứa các ký tự trong $loaibo

   {return false;}

else

   {return true;}  

}

//------ Ham trich nghia tu viet tat:

function nghiacau($cauxet,$cvt)

{

$nghia="";

$dai= strlen($cvt); 

// print $dai ."<br>";

$tach=explode("(".$cvt.")",$cauxet);

$nghiatam=trim($tach[0]);

$cdai=strlen($nghiatam); 

// print $cdai ."<br>";

$dem=0;

$ii = $cdai;

while ($ii >= 0):

  {  

    $tt= substr($nghiatam,$ii,1);

      if ($tt==" ")

        { $dem=$dem+1;

            if ($dem==$dai) {$luuvt= $ii;}

        }        

    $ii--;

 }   

endwhile;

$nghia= substr($nghiatam,$luuvt);

return $nghia;

}

//==================== Chương trình chính:======================

//----------------- Kết nối Database:

$xx= date("H:i:s");

mysql_connect("localhost","cvt","cvt")

    or die("Lỗi (ERROR): Không thể kết nối vào Database!");

mysql_select_db("dulieucvt");

// Xac dinh URL de xu ly:

$url = $_GET['url'];

// print "Web Site đọc vào URL= $url";

if( !$url )

      {

      die( "Bạn cần nhập địa chỉ URL để xử lý tìm kiếm chữ viết tắt mới!" );

      }

else if( substr($url,0,7) != "http://" )

      {     $url = "http://$url";   }

//------------ Tìm tất cả các liên kêt trên URL ---------------

$dslienket = array();  // Biến mãng lưu danh sách liên kết

$file = dirname ($url);    // Lấy đường dẫn đến thư mục

$headers = get_meta_tags($url);  // Doc the meta tags cua trang Web

$HTML = file_get_contents($url);   // Doc noi dung File HTML

// Chon lay nhung lien ket trong trang HTML, gan vao mang Links

if (preg_match_all('/<a href="(.+?)"/im',$HTML,$links,PREG_SET_ORDER))

$j=1;

   for($i = 0; $i < count($links); $i++)

      {

        if (ereg (".htm|.html|.php|.aspx", $links[$i][1])) 

                          //Chỉ lấy những tập tin web

              {            

                  $dslienket[$j]= $file."/". $links[$i][1];

                  $j++;

              }

      }  

// -------------------In tieu de bang -------------------------

?>

<body topmargin="0">

<table width="100%"  border="0">

  <tr bgcolor="#99CCFF">

    <td height="38" colspan="5" scope="col"><div align="center">

        <span class="style6"><span class="style24">CHƯƠNG TRÌNH TÌM KIẾM CHỮ VIẾT TẮT MỚI TỰ ĐỘNG TỪ INTERNET LƯU VÀO CSDL MySQL</span></span><span class="style27"></span><strong><br>

        </strong></div></td><br> </tr>

  <tr bgcolor="#CBE4E4">

    <td height="21" colspan="5" scope="col"><div align="left">

      <p><strong><span class="style1">

          <span class="style4"><img src="../Image/nutdo.gif" width="6" height="6"> Đầu vào</span> <span class="style14">URL=</span>

    <?php print "$url";?>

          </span>.<br></strong><strong><br>

      <?php

              $m=0;

              $dslienket[$m]= $url;  // Lấy cả đường dẫn hiện hành.            

              $solk=count($dslienket);

      ?>

          Tìm thấy danh sách<span class="style1">

       <?php print "$solk";?> <span class="style4">l</span>

       </span></strong><span class="style6">iên kết</span><strong>: </strong><br>

       <?php

               for($j = 0; $j < $solk; $j++)

                  { print "$dslienket[$j] <br>";}    

        ?>

          <strong><br>

        <span class="style1"><span class="style4"><img src="../Image/nutdo.gif" width="6" height="6"></span></span> Bảng kết quả <span class="style14">chữ viết tắt </span>tìm được:</strong></p>

      </div></td></tr>

  <tr bgcolor="#99CCFF">

    <td width="3%" height="31" class="style1" scope="col"><div align="center" class="style25">STT</div></td>

    <td width="14%" class="style1" scope="col"><div align="center" class="style25">Chữ viết tắt tìm thấy</div></td>

    <td width="28%" scope="col"><div align="center" class="style25">Trích dẫn cụm từ viết tắt </div></td>

    <td width="18%" scope="col"><div align="center" class="style25">Đánh giá CVT tìm thấy</div></td>

    <td width="37%" scope="col"><div align="center" class="style25">Câu/đoạn chứa cụm chữ viết tắt</div></td></tr>

<?php

// ---Đọc mỗi liên kết trong $dslienket và tìm kiếm CVT - Lưu vào CSDL:--

$socvt=0;    // Biến đếm tổng số CVT

for($ii = 0; $ii < count($dslienket); $ii++)

 $url_ii=$dslienket[$ii];

 $fd = fopen($url_ii,"r");   // Mo file de dùng lenh

 while( $doan = fgets($fd,1024) )  // Vòng lặp

 {

 if (ereg ("\(|\)", $doan) and ($doan<>""))// Chỉ xét những đoạn có dâu (

hoặc ) và khác rỗng - moi co CVT

  {

   $doan = trim($doan); // Xoa bo khoang trang dau va cuoi chuoi

   // Loai bo cac the HTML:

   $doan = strip_tags($doan);

   $doan = ereg_replace('/&\w;/', '', $doan);

   preg_match_all("/[^.]+/",$doan,$motcau);  // Trich mot cau

   //  Vong lap xu ly cac tu de dua vao data.

   for( $i = 0; $motcau[$i]; $i++ )

    {

    for( $j = 0; $motcau[$i][$j]; $j++ )  //xet tu hien hanh

     {      

       if (ereg ("\(|\)", $motcau[$i][$j]) and ($motcau[$i][$j]<>""))   

                                   // chỉ xét câu có (...) và khác rỗng

        {

          $xetcau = $motcau[$i][$j];                 

            $btcqdaungoac="/[^\(]+[\)$]/";// RE chọn các cụm từ ()     

            preg_match_all($btcqdaungoac,$xetcau,$tuduocchon);   

                           // Biến $tuduocchon lưu những cụm từ (...)

            $cvtmoi="Chữ mới";

            $Ngay="curdate()";                                   

            for( $k = 0; $tuduocchon[$k]; $k++ )

              {

              for( $h = 0; $tuduocchon[$k][$h]; $h++ )

                  {

                   $tudangxet = $tuduocchon[$k][$h];             

                   $dai= strlen($tudangxet);

              $tudangxet=substr($tudangxet,0,$dai-1);

// Loai bo dau ngoac cuoi

                   $btcq_so1="[-+]?([0-9]*[\.,-\/])?[0-9]+"; 

                   $dai= strlen($tudangxet);                                       

                  if ((!ereg ($btcq_so1, $tudangxet)) and ($dai <=21) and

                (testdauhieucvt($tudangxet)))  // Kiểm tra dấu hiệu CVT

                    {

                        $socvt=$socvt+1;

                        $nghiacvt=nghiacau($xetcau,$tudangxet);

 // Gọi hàm trích nghĩa CVT                    

                         $cvtmoi="Chữ viết tắt mới";

                        // Kiem tra CVT co trung lap trong bang 'cvtviet' va

‘tttdcvt’ hay khong?

                        $result1 = mysql_query("SELECT cvt FROM cvtviet

WHERE cvt = \"$tudangxet\"");

                        $row1 = mysql_fetch_array($result1);                       

                        $result2 = mysql_query("SELECT cvt FROM tttdviet

WHERE cvt = \"$tudangxet\"");

                        $row2 = mysql_fetch_array($result2);                       

                        if( $row1['cvt'] )

                              {$cvtmoi="Trùng lặp với dữ liệu đã biên tập";}

                        if( $row2['cvt'] )

                              {$cvtmoi="Trùng lặp dữ liệu chưa biên tập.";}

                        if (( $row1['cvt'] ) and ( $row2['cvt'] ))

                              {$cvtmoi="Trùng lặp dữ liệu chính và chưa biên";}           //---------- In ra màn hình IE:

      ?>

      <tr bordercolor="#000000" bgcolor="#DEEFEF">

       <td><div align="center"><?php print "$socvt";?></div></td>

      <td>

<?php print "$tudangxet";?></td>

             <td><?php print "$nghiacvt";?></td>

             <td><?php print "$cvtmoi";?></td>

             <td><?php print "$xetcau";?></td>        </tr>                 

      <?php                                                                        

   //Luu $tudangxet, $xetcau, $doan, "CVT mới" vao bang ‘tttdviet’

      $luunguon=$url_ii;    // Nếu muốn lưu trang có chứa CVT

    $luunguon=str_replace('\/','\/\/',$luunguon);   // Xử lý đường dẫn

      $sql="INSERT INTO tttdviet (cvt,cau,Doan,NguonURL,GhiChu,Ngay) VALUES ";            $sql.="(\"$tudangxet\",\"$nghiacvt\",\"$xetcau\",\"$luunguon\",\"$cvtmoi\",$Ngay)";

      mysql_query($sql);                                                                 

          } //if

         } //h

        } //k

       } //if    

      } //j  

   } //i   

  } //if

 } //While

fclose($fd);

} // For

$xy= date("H:i:s");

?>

</table>

<p align="center">Kết quả tìm được <span class="style1"><?php print "$socvt ";?> </span>chữ viết tắt đã lưu vào CSDL. <br>

Thời gian bắt đầu: <span class="style1"><?php print "$xx";?></span> <br>

Thời gian kết thúc: <span class="style1"><?php print "$xy";?></span> <br>

====Viết bởi: Nguyễn Nho Tuý - Email: <a href="mailto:nhotuy@dng.vnn.vn"> tuynn.dng@vnpt.vn</a> =========</p> <p align="left">  </style>

</body>

</html>