您的位置:首页技术文章

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

【字号: 日期:2023-11-16 10:49:15浏览:104作者:馨心
<? //本程序是为解析人大复印资料的文章到数据库专用。 //编者:孔秀祥。日期: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); $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("/ns+ns+ns+/",$data); $replacement[0]="/(注.*)$/s";;;;;//应该写上“注”,否则把“(上/下)”也删了。 $replacement[1]="/(注.*)ns*/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 rn $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>rn";;;$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>rn";;;;;} ;;;;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>rn" $dte_created=date('Y-m-d H:i:s'); $html_header.="<font color='Maroon' face='楷体' size=1>$index_describe 发现了 $total 条/上载日期:$dte_created</font><hr>rn" $html_header.="<table>rn" $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>rn"); fputs($fp,"<table>rn"); 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>rn";;;;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; ;;} ?>;
标签: PHP