当前位置: 编程技术>php
本页文章导读:
▪人大复印资料处理程序_输入篇
<? //本程序是为解析人大复印资料的文章到数据库专用。 //编者:孔秀祥。日期:2001/4/10 switch($position) { default: session_start(); if (!isset($auth_passed)) { echo "本功能只有授权用户才能使用.........
▪人大复印资料处理程序_查询篇
<? //本程序为一个搜索,目前设计服务于文章库。 //编者:孔秀祥。日期:2001/4/10 if(!$UploadAction): require "config.php3"; if(!isset($table)){ //$table="artical"; } /* $link_id=@MYSQL_CONNECT($hostname,$dbusername,$dbp.........
▪如何在PHP中使用Oracle数据库(1)
在php3.0以上版本中,php内置了几乎目前所有的数据库处理函数,包括Oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库。 PHP提供了2大类API(应用程序接口)来操.........
[1]人大复印资料处理程序_输入篇
来源: 互联网 发布时间: 2013-11-30
<?
//本程序是为解析人大复印资料的文章到数据库专用。
//编者:孔秀祥。日期: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("/\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="/blog_article/.$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="/blog_article/.$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=/blog_article/$index_url$in_file>/index.html".$in_file.'</a>的最后'.$total.'条。<BR>';
}
else{
//将新索引文件写入总索引文件。
$total_index=$index_path."k_index.html";
$fp_i=fopen($total_index,'a+');
$file_link="<a href=/blog_article/$index_url$in_file>/index.html$index_describe</a><BR>\r\n";
fputs($fp_i, $file_link);
fclose($fp_i);
}//if($added)
echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</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;
}
?>
//本程序是为解析人大复印资料的文章到数据库专用。
//编者:孔秀祥。日期: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("/\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="/blog_article/.$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="/blog_article/.$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=/blog_article/$index_url$in_file>/index.html".$in_file.'</a>的最后'.$total.'条。<BR>';
}
else{
//将新索引文件写入总索引文件。
$total_index=$index_path."k_index.html";
$fp_i=fopen($total_index,'a+');
$file_link="<a href=/blog_article/$index_url$in_file>/index.html$index_describe</a><BR>\r\n";
fputs($fp_i, $file_link);
fclose($fp_i);
}//if($added)
echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</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;
}
?>
[2]人大复印资料处理程序_查询篇
来源: 互联网 发布时间: 2013-11-30
<?
//本程序为一个搜索,目前设计服务于文章库。
//编者:孔秀祥。日期:2001/4/10
if(!$UploadAction):
require "config.php3";
if(!isset($table)){
//$table="artical";
}
/*
$link_id=@MYSQL_CONNECT($hostname,$dbusername,$dbpassword) OR DIE("不能连接数据库!");
@mysql_select_db("$dbname") or die("不能选择数据库!");
$q="select count(id) from $table where 1 ";
$result = @mysql_query($q);
$row = @mysql_fetch_array($result);
$r_count=$row["count(artical_id)"];
*/
?>
<HTML><HEAD><TITLE>数据库搜索 </TITLE>
</HEAD>
<BODY><table align=center cellpadding="0" cellspacing="0" width="420" >
<TH colspan=2 bgcolor=726cc5>
<!--tr><td colspan=2 bgcolor=726cc5-->
<font color=white face=Arial,Helvetica size=2>
<CENTER>
本程序运行较费时间,需要耐心等待。</TH>
<FORM ENCTYPE= "multipart/form-data" NAME = "SubmitForm"
ACTION= "<? $PHP_SELF ?>" METHOD = "POST">
<!--INPUT TYPE= "hidden" NAME = "MAX_FILE_SIZE" VALUE ="2500000"-->
<INPUT TYPE= "hidden" NAME = "UploadAction" VALUE = "1">
<INPUT TYPE= "hidden" NAME = "table" VALUE = "<? echo $table; ?>" >
<input type="hidden" name=table value="artical">
<tr border=1><td colspan=2 align=center>查询项目
<tr><td colspan=2 align=center><input type="radio" name=a_data value="data" checked>文章内容
<input type="radio" name=a_data value="title">文章标题
<input type="radio" name=a_data value="author">文章作者
<input type="radio" name=a_data value="month" >期刊名
<!--input type="radio" name=a_data value="type" >分类号<BR-->
<TR><TD>搜索内容<TD><INPUT NAME = "data_search" TYPE = "text" VALUE="" SIZE = "30"></TD>
<TR><TD>索引文件名<TD><INPUT NAME = "index_file" TYPE = "text" VALUE="" SIZE = "30"></TD>
<TR><TD>索引标题<TD><INPUT NAME = "index_title" TYPE = "text" VALUE="" SIZE = "30"></TD>
<!--TR><TD>从第<INPUT NAME = "s_id" TYPE = "text" VALUE="1" SIZE = "4"><td>
开始的<INPUT NAME = "step" TYPE = "text" VALUE="100" SIZE = "4">条,共有<? echo $r_count ?>条记录。</TD></TR-->
<TR><TD>文章分类</TD>
<TD>
<SELECT size="1" name="catalog" TYPE = "int">
?<OPTION selected value="11">语言理论</OPTION>
<OPTION value="21">历史学</OPTION>
<OPTION value="31">中国哲学</OPTION>
<OPTION value="41">其他</OPTION>
?<!--OPTION selected value="11">语言理论</OPTION-->
</SELECT>
</TR>
<TR><TD colspan=3 align=center>
<INPUT NAME = "submit" VALUE = "提交" TYPE = "submit">
<INPUT NAME = "reset" VALUE = "重置" TYPE = "reset"></TD>
</TD></TR>
</FORM></CENTER></TABLE></BODY>
</HTML>
<?
else:
require "config.php3";
$UploadAction=0;
$added=0;
$die=0;
$single_chinese=0;
$TimeLimit=0; /*设置超时限制时间缺省时间为 30秒设置为0时为不限时 */
set_time_limit($TimeLimit);
if($data_search==""){
//做全库的索引
header("location:\progs\data_index.php3");
//$msg="搜索内容不能为空。";
//xueroom_error_exit($msg,$PHP_SELF);
}
$link_id=@MYSQL_CONNECT($hostname,$dbusername,$dbpassword) OR DIE("不能连接数据库!");
@mysql_select_db("$dbname") or die("不能选择数据库!");
//SELECT id,file_name,artical_author from textfile where 1 LIMIT 0, 30
if($table=="artical")
{
$sid="artical_id";
$stitle="artical_title";
$sauthor="artical_author";
$sdata="artical_data";
$prog="readfile.php3";
if($a_data=="month" )
$key_where="where origin_periodical rlike '^.*$data_search.*'";
}
if($a_data=="data" )
$key_where="where $sdata rlike '^.*$data_search.*'";
if($a_data=="title" )
$key_where="where $stitle rlike '^.*$data_search.*'";
if($a_data=="author" )
$key_where="where $sauthor rlike '^.*$data_search.*'";
//$q="select $sid,$stitle,$sauthor from $table where $sdata rlike '^.*$data_search.*'order by $stitle";
if(($a_data=="data")&&(strlen($data_search)==2)){
$q="select $sid,$stitle,$sauthor,$sdata from $table $key_where order by $stitle";
$single_chinese=1;
}
else{
$q="select $sid,$stitle,$sauthor from $table $key_where order by $stitle";
}
$index_data="";
$count=0;
$result =@ mysql_query($q);
if(!$result){
$msg="没有符合要求的记录。";
xueroom_error_exit($msg,$PHP_SELF);
}
while($row = @mysql_fetch_array($result)) {
if(($single_chinese)&&(!myStrPos($row[$sdata],$data_search)))
continue;
else
{
$id=$row[$sid];
$title=$row[$stitle];
$author=$row[$sauthor];
if($table=="textfile")
$title=preg_replace("/.txt/","",$title);
// $data=$row["artical_data"];
//if(myStrPos($data,$data_search)) //可以用于寻找单个汉字。
// if(strpos($data,$data_search)){ //大于一个汉字时采用本判断式,速度较快。
$index_data.="<TR><TD><a href="/blog_article/.$dataurl"$prog?$sid=$id>$title</a><TD>作者:$author </TR>";
$count++;
//fputs($fp, "<TR><TD><a href="/blog_article/.$dataurl"readfile.php3?artical_id=$id>$title</a><TD>作者:$author </TR>");
// }
}
}
@mysql_free_result($result);
mysql_close($link_id);
set_time_limit(30);
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 发现了 $count 条/查询日期:$dte_created</font><hr>rn";
$html_header.="<table>rn";
$data=$html_header.$index_data;
$data.="<TABLE></body></html>";
/*If(strlen($index_file)==0){
header("Content-type: text/html");
echo $data;
}
else
{
$in_file="$index_file";
$index_file="\index\".$index_file;
$fp=indexfile($index_file,$index_title,$index_describe);
fputs($fp, "发现了 $count 条");
fputs($fp, "查询日期:$dte_created</font><hr>rn");
fputs($fp,"<table>rn");
fputs($fp, $index_data);
fputs($fp, "<TABLE></body></html>");
fclose($fp);
echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</a>看新加入的文件索引<BR>";
}
*/
If(strlen($index_file)!=0){
$in_file="$index_file";
$index_file="\index\".$index_file;
}
else
$in_file="temp.html";
$fp=indexfile($index_file,$index_title,$index_describe);
fputs($fp, "发现了 $count 条");
fputs($fp, "查询日期:$dte_created</font><hr>rn");
fputs($fp,"<table>rn");
fputs($fp, $index_data);
fputs($fp, "<TABLE></body></html>");
fclose($fp);
// echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</a>看新加入的文件索引<BR>";
header("location:$index_url$in_file");
//echo"索引文件为 $index_file";
echo"<BR><A HREF = $PHP_SELF>返回 </A>";
endif;
?>
//本程序为一个搜索,目前设计服务于文章库。
//编者:孔秀祥。日期:2001/4/10
if(!$UploadAction):
require "config.php3";
if(!isset($table)){
//$table="artical";
}
/*
$link_id=@MYSQL_CONNECT($hostname,$dbusername,$dbpassword) OR DIE("不能连接数据库!");
@mysql_select_db("$dbname") or die("不能选择数据库!");
$q="select count(id) from $table where 1 ";
$result = @mysql_query($q);
$row = @mysql_fetch_array($result);
$r_count=$row["count(artical_id)"];
*/
?>
<HTML><HEAD><TITLE>数据库搜索 </TITLE>
</HEAD>
<BODY><table align=center cellpadding="0" cellspacing="0" width="420" >
<TH colspan=2 bgcolor=726cc5>
<!--tr><td colspan=2 bgcolor=726cc5-->
<font color=white face=Arial,Helvetica size=2>
<CENTER>
本程序运行较费时间,需要耐心等待。</TH>
<FORM ENCTYPE= "multipart/form-data" NAME = "SubmitForm"
ACTION= "<? $PHP_SELF ?>" METHOD = "POST">
<!--INPUT TYPE= "hidden" NAME = "MAX_FILE_SIZE" VALUE ="2500000"-->
<INPUT TYPE= "hidden" NAME = "UploadAction" VALUE = "1">
<INPUT TYPE= "hidden" NAME = "table" VALUE = "<? echo $table; ?>" >
<input type="hidden" name=table value="artical">
<tr border=1><td colspan=2 align=center>查询项目
<tr><td colspan=2 align=center><input type="radio" name=a_data value="data" checked>文章内容
<input type="radio" name=a_data value="title">文章标题
<input type="radio" name=a_data value="author">文章作者
<input type="radio" name=a_data value="month" >期刊名
<!--input type="radio" name=a_data value="type" >分类号<BR-->
<TR><TD>搜索内容<TD><INPUT NAME = "data_search" TYPE = "text" VALUE="" SIZE = "30"></TD>
<TR><TD>索引文件名<TD><INPUT NAME = "index_file" TYPE = "text" VALUE="" SIZE = "30"></TD>
<TR><TD>索引标题<TD><INPUT NAME = "index_title" TYPE = "text" VALUE="" SIZE = "30"></TD>
<!--TR><TD>从第<INPUT NAME = "s_id" TYPE = "text" VALUE="1" SIZE = "4"><td>
开始的<INPUT NAME = "step" TYPE = "text" VALUE="100" SIZE = "4">条,共有<? echo $r_count ?>条记录。</TD></TR-->
<TR><TD>文章分类</TD>
<TD>
<SELECT size="1" name="catalog" TYPE = "int">
?<OPTION selected value="11">语言理论</OPTION>
<OPTION value="21">历史学</OPTION>
<OPTION value="31">中国哲学</OPTION>
<OPTION value="41">其他</OPTION>
?<!--OPTION selected value="11">语言理论</OPTION-->
</SELECT>
</TR>
<TR><TD colspan=3 align=center>
<INPUT NAME = "submit" VALUE = "提交" TYPE = "submit">
<INPUT NAME = "reset" VALUE = "重置" TYPE = "reset"></TD>
</TD></TR>
</FORM></CENTER></TABLE></BODY>
</HTML>
<?
else:
require "config.php3";
$UploadAction=0;
$added=0;
$die=0;
$single_chinese=0;
$TimeLimit=0; /*设置超时限制时间缺省时间为 30秒设置为0时为不限时 */
set_time_limit($TimeLimit);
if($data_search==""){
//做全库的索引
header("location:\progs\data_index.php3");
//$msg="搜索内容不能为空。";
//xueroom_error_exit($msg,$PHP_SELF);
}
$link_id=@MYSQL_CONNECT($hostname,$dbusername,$dbpassword) OR DIE("不能连接数据库!");
@mysql_select_db("$dbname") or die("不能选择数据库!");
//SELECT id,file_name,artical_author from textfile where 1 LIMIT 0, 30
if($table=="artical")
{
$sid="artical_id";
$stitle="artical_title";
$sauthor="artical_author";
$sdata="artical_data";
$prog="readfile.php3";
if($a_data=="month" )
$key_where="where origin_periodical rlike '^.*$data_search.*'";
}
if($a_data=="data" )
$key_where="where $sdata rlike '^.*$data_search.*'";
if($a_data=="title" )
$key_where="where $stitle rlike '^.*$data_search.*'";
if($a_data=="author" )
$key_where="where $sauthor rlike '^.*$data_search.*'";
//$q="select $sid,$stitle,$sauthor from $table where $sdata rlike '^.*$data_search.*'order by $stitle";
if(($a_data=="data")&&(strlen($data_search)==2)){
$q="select $sid,$stitle,$sauthor,$sdata from $table $key_where order by $stitle";
$single_chinese=1;
}
else{
$q="select $sid,$stitle,$sauthor from $table $key_where order by $stitle";
}
$index_data="";
$count=0;
$result =@ mysql_query($q);
if(!$result){
$msg="没有符合要求的记录。";
xueroom_error_exit($msg,$PHP_SELF);
}
while($row = @mysql_fetch_array($result)) {
if(($single_chinese)&&(!myStrPos($row[$sdata],$data_search)))
continue;
else
{
$id=$row[$sid];
$title=$row[$stitle];
$author=$row[$sauthor];
if($table=="textfile")
$title=preg_replace("/.txt/","",$title);
// $data=$row["artical_data"];
//if(myStrPos($data,$data_search)) //可以用于寻找单个汉字。
// if(strpos($data,$data_search)){ //大于一个汉字时采用本判断式,速度较快。
$index_data.="<TR><TD><a href="/blog_article/.$dataurl"$prog?$sid=$id>$title</a><TD>作者:$author </TR>";
$count++;
//fputs($fp, "<TR><TD><a href="/blog_article/.$dataurl"readfile.php3?artical_id=$id>$title</a><TD>作者:$author </TR>");
// }
}
}
@mysql_free_result($result);
mysql_close($link_id);
set_time_limit(30);
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 发现了 $count 条/查询日期:$dte_created</font><hr>rn";
$html_header.="<table>rn";
$data=$html_header.$index_data;
$data.="<TABLE></body></html>";
/*If(strlen($index_file)==0){
header("Content-type: text/html");
echo $data;
}
else
{
$in_file="$index_file";
$index_file="\index\".$index_file;
$fp=indexfile($index_file,$index_title,$index_describe);
fputs($fp, "发现了 $count 条");
fputs($fp, "查询日期:$dte_created</font><hr>rn");
fputs($fp,"<table>rn");
fputs($fp, $index_data);
fputs($fp, "<TABLE></body></html>");
fclose($fp);
echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</a>看新加入的文件索引<BR>";
}
*/
If(strlen($index_file)!=0){
$in_file="$index_file";
$index_file="\index\".$index_file;
}
else
$in_file="temp.html";
$fp=indexfile($index_file,$index_title,$index_describe);
fputs($fp, "发现了 $count 条");
fputs($fp, "查询日期:$dte_created</font><hr>rn");
fputs($fp,"<table>rn");
fputs($fp, $index_data);
fputs($fp, "<TABLE></body></html>");
fclose($fp);
// echo"点<a href=/blog_article/$index_url$in_file>/index.html这里</a>看新加入的文件索引<BR>";
header("location:$index_url$in_file");
//echo"索引文件为 $index_file";
echo"<BR><A HREF = $PHP_SELF>返回 </A>";
endif;
?>
[3]如何在PHP中使用Oracle数据库(1)
来源: 互联网 发布时间: 2013-11-30
在php3.0以上版本中,php内置了几乎目前所有的数据库处理函数,包括Oracle;在本文中我们通过一个实例来介绍了如何使用这些函数来操作Oracle数据库。
PHP提供了2大类API(应用程序接口)来操作Oracle数据库。一个是标准的Oracle处理函数(ORA) 另一个是Oracle 8调用接口函数(OCI8). 后者只能在Oracle 7或8版本上使用。 由于OCI8 提供了很多优化选项,因此只要有可能就应该采用 OCI8 接口。这里我们分别用这二种函数集进行了演示。
首先本文的前提假设你已经装好了 Oracle数据库环境 和 PHP 开发环境. 如果不懂也没多大关系,网上有很多相关的好文章可以参考。
第一步:创建 一个实验用的数据库
这个问题你可以请你的数据库管理员或参考Oracle用户手册处理,这里不再多讲
用 ORA 建立数据表
即使你已经创建好了数据表,也请看看本段文字。它可以告诉你如何用PHP+SQL的技术操作Oracle
在本例中我们创建了一个用于存放个人email的数据表
相关PHP代码:
PutEnv("ORACLE_SID=ORASID");
$connection = Ora_Logon ("username", "password");
if ($connection == false){
echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."
";
exit;
}
$cursor = Ora_Open ($connection);
if ($cursor == false){
echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."
";
exit;
}
$query = "create table email_info " .
"(fullname varchar(255), email_address varchar(255))";
$result = Ora_Parse ($cursor, $query);
if ($result == false){
echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."
";
exit;
}
$result = Ora_Exec ($cursor);
if ($result == false){
echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."
";
exit;
}
Ora_Commit ($connection);
Ora_Close ($cursor);
Ora_Logoff ($connection);
?>
为了处理Oracle数据库,我们首先要和Oracle建立一个联结。
语法是 Ora_Logon (user, password),返回一个connectID..
提醒: 在此之前我们还必须设置环境变量: ORACLE_SID的值.
现在,我们可以通过该联结的 ID对Oracle进行交互式操作了。数据表名字就叫email_info吧。该表由2个域组成,一个存储个人全名,(如:晓月)一个存储email地址如(xiaoyue@163.net)
还需要一个游标 Ora_Open. 该游标常常用来枚举数据。我们用 Ora_Parse 或 Ora_Exec 查询Oracle的结果集. Ora_Parse 效验SQL语法正确性 而 Ora_Exec 则执行相应的SQL语句. 如果这一切都正常运行,那么我们就运行 Ora_Commit来确认.
PHP提供了2大类API(应用程序接口)来操作Oracle数据库。一个是标准的Oracle处理函数(ORA) 另一个是Oracle 8调用接口函数(OCI8). 后者只能在Oracle 7或8版本上使用。 由于OCI8 提供了很多优化选项,因此只要有可能就应该采用 OCI8 接口。这里我们分别用这二种函数集进行了演示。
首先本文的前提假设你已经装好了 Oracle数据库环境 和 PHP 开发环境. 如果不懂也没多大关系,网上有很多相关的好文章可以参考。
第一步:创建 一个实验用的数据库
这个问题你可以请你的数据库管理员或参考Oracle用户手册处理,这里不再多讲
用 ORA 建立数据表
即使你已经创建好了数据表,也请看看本段文字。它可以告诉你如何用PHP+SQL的技术操作Oracle
在本例中我们创建了一个用于存放个人email的数据表
相关PHP代码:
PutEnv("ORACLE_SID=ORASID");
$connection = Ora_Logon ("username", "password");
if ($connection == false){
echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."
";
exit;
}
$cursor = Ora_Open ($connection);
if ($cursor == false){
echo Ora_ErrorCode($connection).": ".Ora_Error($connection)."
";
exit;
}
$query = "create table email_info " .
"(fullname varchar(255), email_address varchar(255))";
$result = Ora_Parse ($cursor, $query);
if ($result == false){
echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."
";
exit;
}
$result = Ora_Exec ($cursor);
if ($result == false){
echo Ora_ErrorCode($cursor).": ".Ora_Error($cursor)."
";
exit;
}
Ora_Commit ($connection);
Ora_Close ($cursor);
Ora_Logoff ($connection);
?>
为了处理Oracle数据库,我们首先要和Oracle建立一个联结。
语法是 Ora_Logon (user, password),返回一个connectID..
提醒: 在此之前我们还必须设置环境变量: ORACLE_SID的值.
现在,我们可以通过该联结的 ID对Oracle进行交互式操作了。数据表名字就叫email_info吧。该表由2个域组成,一个存储个人全名,(如:晓月)一个存储email地址如(xiaoyue@163.net)
还需要一个游标 Ora_Open. 该游标常常用来枚举数据。我们用 Ora_Parse 或 Ora_Exec 查询Oracle的结果集. Ora_Parse 效验SQL语法正确性 而 Ora_Exec 则执行相应的SQL语句. 如果这一切都正常运行,那么我们就运行 Ora_Commit来确认.
最新技术文章: