首页 > 开发 > PHP > 正文

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

2024-05-04 23:01:17
字体:
来源:转载
供稿:网友
<?
//本程序是为解析人大复印资料的文章到数据库专用。
//编者:孔秀祥。日期: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 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);
$[email protected]_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);
//             $[email protected]_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;
  }
?> 
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!
  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表