广

PHP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    人大复印资料处理程序_输入篇

    2018-10-13 10:38:01 次阅读 稿源:互联网
    零七广告
    <?
    //本程序是为解析人大复印资料的文章到数据库专用。
    //编者:孔秀祥。日期:2001/4/10
    switch($position) {
        default:
    session_start();
    if (!isset($auth_passed)) {
    echo "本功能只有授权用户才能使用。";
    return -1;
    }

    if(isset($u_name)) {
      session_name($u_name);

    //echo "<center><font color='red'>".session_name().":本程序将竭诚为您服务。</font></center>/n";
    //echo "<hr>";
    }

    ?>
    <HTML><HEAD>
    <TITLE>文章加入数据库 </TITLE>
    </HEAD>
    <BODY><TABLE><CENTER>
    <FORM ENCTYPE= "multipart/form-data" NAME = "SubmitForm"
    ACTION= "<? $PHP_SELF ?>" METHOD = "POST">
    <INPUT TYPE= "hidden" NAME = "MAX_FILE_SIZE" VALUE ="20000000">
    <!--INPUT TYPE= "hidden" NAME = "UploadAction" VALUE = "1"-->
    <INPUT TYPE= "hidden" NAME = "position" VALUE = "process">
    <TR><TD>文件名<TD><INPUT NAME = "UploadFile" TYPE = "file" VALUE="" SIZE = "30"></TR>
    <TR><TD>索引文件名<TD><INPUT NAME = "index_file" TYPE = "text" VALUE="" SIZE = "30"></TD></TR>
    <TR><TD>索引标题<TD><INPUT NAME = "index_title" TYPE = "text" VALUE="学而斋资料" SIZE = "30"></TD></TR>

    <TR><TD rowspan=5>查询说明</TD>
    <!--/TR><TR-->
    <TD rowspan=5><TEXTAREA wrap=on rows="5" cols="30" NAME = "index_describe" SIZE = "250">
    人大复印资料(1985-1989)根据任意词查询,任意词=
    </TEXTAREA></TD>
    </TR>

    <TD>文章分类</TD>
    </TR>
    <TR><TD>
    <SELECT size="1" name="catalog" TYPE = "int" default=11>
    ?<OPTION selected value="11">语言理论</OPTION>
    ?<OPTION value="12">语法学</OPTION>
    ?<OPTION value="13">语义学</OPTION>
    ?<OPTION value="14">语用学</OPTION>
    ?<OPTION value="15">修辞学 </OPTION>
    ?<OPTION value="16">古代汉语</OPTION>
    ?<OPTION value="21">历史学</OPTION>
    ?<OPTION value="31">中国哲学</OPTION>
    ?<OPTION value="41">其他</OPTION>
    </SELECT>
    </TR>

    <TR><TD style="text-align:center">
    <INPUT NAME = "submit" VALUE = "提交" TYPE = "submit">
    <TD><INPUT NAME = "reset" VALUE = "重置" TYPE = "reset">
    </TD></TR>
    </FORM></CENTER></TABLE></BODY>

    </HTML>
    <?

              break;
        case "process":
    session_start();
    require "config.php3";

    $UploadAction=0;
    $index_path="//index//";
    $added=0; //索引文件是否已经存在的标记。
    $die=0; //碰到异常情况退出循环标记。
    $data_exist=0;  //要加入的文章已经存在的计量
    $data_insert=0;   //新加入文章的计量
    $repeat=0;      //是不是重复了。
    $TimeLimit=0; //设置超时限制时间缺省时间为 30秒设置为0时为不限时
    set_time_limit($TimeLimit);

    //$UploadPath = AddSlashes(dirname($PATH_TRANSLATED));
    $FileName = $UploadPath.$UploadFile_name; //上载文件名
    //If(($UploadFile != "none")&&($UploadFile != ""))
    If(($UploadFile =="none")||($UploadFile == "")){
        $page=$PHP_SELF;
        xueroom_error_exit("文件名不能为空,或者文件没有上传成功。",$page);
    }
    //$file_data=file($UploadFile);
    $link=@MYSQL_CONNECT($hostname,$dbusername,$dbpassword) OR DIE("不能连接数据库!");
    @mysql_select_db("$dbname") or die("不能选择数据库!");

    $patterne="/【/s*文献号/s*】(.+)/n/U";  //文献号
    $patternf="/【原文出处】(.+)/n/U";  //原文出处
    $patterng="/【原刊期号】(.+)/n/U";  //原刊期号
    $patternh="/【分/s*类/s*号】(.+)/n/U";  //分 类 号
    $patternb="/【复印期号】(.+)/n/U";  //复印期号

    //$patternc="/.*/s*【 标  题 】(.+)/n【.*/Us";  //标  题  本来不加/n,但碰到“小句(d0a1bee4)”其中的a1be正好是“【”的内码。2001/3/13

    //$patternc="/【 标  题 】(.+)/n【.*/Us";  //标  题  本来不加/n,但碰到“小句(d0a1bee4)”其中的a1be正好是“【”的内码。2001/3/13
    $patternc="/【/s*标/s*题/s*】(.+)/n【.*/Us";  //标  题  本来不加/n,但碰到“小句(d0a1bee4)”其中的a1be正好是“【”的内码。2001/3/13
    $patternd="/【/s*作/s*者/s*】(.+)/n/U";  //作  者
    $patterna="/(.+【/s*正/s*文/s*】)(.+)$/Us";  //留下一个【,作为标题栏的结束标记。
    $pattern11="/【作者简介】(.+)【.*/Us";//
    $pattern12="/【内容提要】(.+)【.*/Us";//



    $fp_o=fopen("$UploadFile",'r');
    $data=fread($fp_o,filesize($UploadFile));  //文件读入字符变量
    fclose($fp_o);
    $poem_array=preg_split("//n/s+/n/s+/n/s+/",$data);
    $replacement[0]="/(注.*)$/s";    //应该写上“注”,否则把“(上/下)”也删了。
    $replacement[1]="/(注.*)/n/s*/s";  //为马庆株的一篇文章而设。注后还有副题。
    //echo$poem_array[1];
    $s=sizeof($poem_array);
    for($i=0;$i<$s;$i++){  //对一个网页内的所有唐诗进行操作。
    //for($i=0;$i<2;$i++){  //对一个网页内的所有唐诗进行操作。
        $t_data=$poem_array[$i];
    //    if(preg_match($pattern,$data,$matches,PREG_SET_ORDER)){
        if(preg_match($patterna,$t_data,$matchesa,PREG_SET_ORDER)){
            $artical_data=$matchesa[2];   //正文
            $data=$matchesa[1];   //文章头
            if(preg_match($patternb,$data,$matchesb,PREG_SET_ORDER))
                $date_rep=$matchesb[1];     //复印期号
                else
                $date_rep="";
            if(preg_match($patternc,$data,$matchesc,PREG_SET_ORDER)){
                $artical_title=trim($matchesc[1]);   //标题
                $artical_title=preg_replace($replacement,"",$artical_title);
    //            echo $artical_title."<BR>";
                }
                else
                $artical_title="";
            if(preg_match($patternd,$data,$matchesd,PREG_SET_ORDER))
                $artical_author=trim($matchesd[1]);   //作者
                else
                $artical_author="";

            if(preg_match($patterne,$data,$matchese,PREG_SET_ORDER)){
                $resource_id=trim($matchese[1]);   //人大编号
    //            echo $resource_id."<BR>";
                }
                else
                $resource_id="";
            if(preg_match($patternf,$data,$matchesf,PREG_SET_ORDER))
                $origin_periodical=trim($matchesf[1]);   //期刊
                else
                $origin_periodical="";
            if(preg_match($patterng,$data,$matchesg,PREG_SET_ORDER))
                $date_temp=$matchesg[1];   //出版日期
                else
                $date_temp="";
            if(preg_match($patternh,$data,$matchesh,PREG_SET_ORDER))
                $artical_type=trim($matchesh[1]);   //文章分类
                else
                $artical_type="";
    /*
            if(preg_match($pattern11,$data,$matchesd,PREG_SET_ORDER))
                $author_brif=$matchesd[1];   //作者简介
                else
                $author_brif="";
    */
            if(preg_match($pattern12,$data,$matches12,PREG_SET_ORDER))
                $content_brif=$matches12[1];   //内容提要
                else
                $content_brif="";
    //        echo$data;
    //echo $artical_title;
    /*         
            echo $resource_id."<BR>";
            echo $origin_periodical."<BR>";
            echo $artical_title."<BR>";
            echo $artical_author."<BR>";
    */
    //    echo $date_rep."<BR>";     
         if(($artical_title=="")||($resource_id=="")){
             $a=$i+1;
                  echo "标题或人大编号为空,不合法。第 $a 篇没有加入数据库<BR>";
                  $die=1;
                  //break;
          }
        else{
              if(strlen(trim(substr($date_temp,6,2)))!=0){
                      $date_pub=substr($date_temp,0,4)."-".substr($date_temp,4,2).substr($date_temp,6,2)." 00:00:00";
                }
               else{
                     $date_pub=substr($date_temp,0,4)."-".substr($date_temp,4,2)."-01 01:01:01";
                             //在日期的数字一定要有效,否则被置零。
    //                         $date_pub=substr($date_temp,0,4)."-".substr($date_temp,4,2);
                  }         //如果原文发表在报纸上,则有日期

        //    $artical_title=preg_replace($pattern91,"",$artical_title);
            $origin_periodical=addslashes($origin_periodical);
            $artical_title=addslashes($artical_title);
            $date_reprinted=substr($date_rep,0,4)."-".substr($date_rep,4,2)."-01 01:01:01";
            if($content_brif)
                $artical_data="$content_brif /r/n $artical_data";

                 $artical_data=addslashes($artical_data);
                 $artical__size=strlen($artical_data);
                 $resource_id=trim($resource_id);
                 $query = "INSERT INTO artical (resource_id, origin_periodical,date_pub, artical_author, artical_title, artical_data, artical_type,artical__size, date_reprinted,catalog) VALUES ('$resource_id', '$origin_periodical','$date_pub', '$artical_author', '$artical_title', '$artical_data', '$artical_type','$artical__size', '$date_reprinted',$catalog)";
                 $q="select artical_id,resource_id,artical_title,artical_author,artical_type from artical where resource_id=/"$resource_id/"";
                 $r = @mysql_query($q);
    //             $count=@mysql_fetch_row($r);
    //             echo "$artical_type,,".$count[4]."<BR>";
            while($count=mysql_fetch_array($r)){  //重复的号码可能有多个,真正重复的不一定是第一个找到的。所以要用循环来找。2001/3/16
                                                  //为了找到个理由,我花的代价可是不小。
                if($artical_type==$count[4]&&$artical_author==$count[3]){
                          $data_exist+=1;
                          $id=$count[0];
                          $title=$count[2];
                          $author=$count[3];
                    $repeat=1;
                    break;
                }
            }
                  if($repeat){
                $f_data.="<TR><TD><a href=".$dataurl."readfile.php3?artical_id=$id>$title</a><TD>作者:$author </TR>/r/n";
                $repeat=0;
                  }
               else{

                    $result = @mysql_query($query);
                    if($result){
                           $data_insert+=1;
                           $id= mysql_insert_id();
                           $f_data.="<TR><TD><a href=".$dataurl."readfile.php3?artical_id=$id>$artical_title</a><TD>作者:$artical_author</TR>/r/n";
                  }
                else{
                    echo $data;
                    echo'数据写入失败<br>';
                     }//if($result)
            }//if(strlen($count)!=0){  //文章是否已经存在。

        }//if(strlen($artical_title)==0){

        }//if(preg_match($patterna,$t_data,$matchesa,PREG_SET_ORDER)){
    }//for()

    //下面为结束处理。
    set_time_limit(30);
    mysql_close($link);
    $dte_created=date('Y-m-d H:i:s');
    $total=$data_exist+$data_insert;

    if($index_title==""){
    $index_title="学而斋资料";
    }
    $index_title=$index_title."_".$data_search;

    $html_header="<html><head><title>$index_title</title></head><body>";
    $html_header.="<h5>$index_title</h5>/r/n";
    $dte_created=date('Y-m-d H:i:s');
    $html_header.="<font color='Maroon' face='楷体' size=1>$index_describe 发现了 $total 条/上载日期:$dte_created</font><hr>/r/n";
    $html_header.="<table>/r/n";
    $data=$html_header.$f_data;
    $data.="<TABLE></body></html>";
    /*
    If(strlen($index_file)==0){
    header("Content-type: text/html");
       echo $data;
       }
       else
       {
    */
    If(strlen($index_file)!=0){
         $in_file="$index_file";
        $index_file=$index_path.$in_file;
      }
    else
           $in_file="temp.html";

    $fp=indexfile($index_file,$index_title,$index_describe);
    fputs($fp, "发现了 $total 条");
    fputs($fp, "查询日期:$dte_created</font><hr>/r/n");
    fputs($fp,"<table>/r/n");
    fputs($fp, $f_data);
    fputs($fp, "<TABLE></body></html>");
    fclose($fp);
    echo "<HTML><HEAD><TITLE>文件提取</TITLE></HEAD><BODY>";

    if($added){  //如果索引文件存在。$added是一个全局变量。
        echo "索引文件".$in_file."已经存在,新索引已经加入到文件的最后。<BR>";
        //  echo "请看<a href=$index_url$in_file>".$in_file.'</a>的最后'.$total.'条。<BR>';
          }

    else{
         //将新索引文件写入总索引文件。
         $total_index=$index_path."k_index.html";
         $fp_i=fopen($total_index,'a+');
         $file_link="<a href=$index_url$in_file>$index_describe</a><BR>/r/n";
         fputs($fp_i, $file_link);
         fclose($fp_i);
    }//if($added)
    echo"点<a href=$index_url$in_file>这里</a>看新加入的文件索引<BR>";

    //}//If(strlen($index_file)==0){

    if($data_exist>0)
         echo "重复的文章共".$data_exist."篇。<BR>";
    if($data_insert>0)
        echo "新加入的文章共".$data_insert."篇。<HR>";
    $total=$data_exist+$data_insert;
    echo"上传文件".$UploadFile_name."共有文章".$total."篇。";
    echo"<BR><A HREF = $PHP_SELF>返回 </A>";
    echo"</BODY></HTML>";
    break;
      }
    ?> 

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告