一個可以針對本機資料庫的新聞搜尋,添加新聞和單詞庫操作的php程式

來源:互聯網
上載者:User

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>www.codeke.com</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="keywords" content="php video,javascript" /><meta http-equiv="description" content="php php php hp php" /><style type="text/css"><!--span { margin:1px 5px;}--></style></head><form action="pwd.php" method="post"><table cellpadding="0" cellspacing="0" border="1px" cols="5" width="300"><tr><td align="center" colspan="2">列表</td><td colspan="2" align="center">名稱</td></tr><tr><td align="center"  valign="bottom" height="20px" rowspan="2" colspan="3">輸入單詞</td><td colspan="2" rowspan="2" valign="middle" height="20px" align="right"><input size="26" type="text" name="danci" /></td></tr><tr></tr><tr id="thanks" style="display:none"><td colspan="5"><span>輸入舊單詞</span><span><input size="26" type="text" name="jiudanci" value="" /></span></td></tr><tr></tr><tr><td align="center" valign="bottom" height="20px" colspan="3" >選擇操作類型</td><td valign="middle" height="20px" align="right"><select  name="select" id="opt" onchange="javascript:change();"><option value="1" selected="selected">添加</option><option value="2">刪除</option><option value="3">更改</option><option value="4">查詢</option></select></td></tr><script type="text/javascript">window.onload=synthesize;function synthesize(){innerNews();outterNews();change();}function innerNews(){    document.getElementById("newsArea").innerHTML="";}function outterNews(){    document.getElementById("newsArea").innerHTML="請在這裡輸入新聞本文:";}function change(){var temp = document.getElementById("opt").value;var temp1 = document.getElementById("new").value;if(temp==3){document.getElementById("thanks").style.display="table-row";}else{document.getElementById("thanks").style.display="none";}  if(temp1==1){document.getElementById("newsArea").style.display="block";document.getElementById("title").innerHTML="新聞標題:(不能重複)";}else {document.getElementById("newsArea").style.display="none";document.getElementById("title").innerHTML="輸入查詢關鍵字";}}</script><tr><td colspan="2"><input type="reset" /></td><td align="center" colspan="2"><input type="submit" value="submit" /></td></tr></table> <input type="hidden" name="hidd" value="danci" /></form><div><br/><br/><form action="pwd.php" method="post"><span id="title">Title:   </span><input size="30" name="title" type="text" /><br /><textarea cols="35" rows="10" name="news" id="newsArea" style="display:block" onblur="javascript:outterNews();" onfocus="javascript:innerNews()"></textarea><br /><br /><select  name="newsel" id="new" onchange="javascript:change();"><option value="1" selected="selected">添加新聞</option><option value="2">查詢新聞</option></select>   <input type="reset" value="reset" /><input type="submit" value="submit"/><input size="15" name="hidd" value="news" type="hidden" /></form></div>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>www.codeke.com</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="refresh" content="5;url=access.htm" /></head> <?php /* function readFiles($fileName,$filePath){ //  $fileName= "1.jpg";//中文檔案名稱必須進行轉碼為GB2312   //$fileName=iconv("UTF-8","gb2312",$fileName);  // $filePath=$_SERVER['DOCUMENT_ROOT']."/images/";       if(file_exists($filePath.$fileName)){    $filesize=filesize($filePath.$fileName);  //  $fp=fopen($filePath.$fileName,'r');  //請求檔案的類型為二進位檔案  header("Content-Type:application/octet-stream");      //網頁下載框顯示控制,例如檔案名稱  header("Content-Disposition:attachment;filename=".basename($filePath.$fileName));  //要下載的檔案的大小  header("Accept-Length:$filesize");   $fp=fopen($filePath.$fileName,"r");   do{     echo fread($fp,$filesize);     }while(!feof($fp));     fclose($fp);     return ;  }   }  */  require_once 'temp.php';  require_once 'def.class.php'; //這個檔案用於資料庫操作  $hidd=$_POST['hidd'];  if($hidd==="danci"){  $danci=$_POST['danci'];  $jiudanci=$_POST['jiudanci'];  $choice=$_POST['select'];   $danci=strtoupper($danci);  //將單詞統一轉化成大寫的  $jiudanci=strtoupper($jiudanci);  $sqlQue=new SqlDiy("like","admin");  $sqlQue->setDanci($danci);  $sqlQue->setJiudanci($jiudanci);  switch($choice){case 1:$sqlQue->setOper("insert");break; case 2:$sqlQue->setOper("delete");break;case 3:$sqlQue->setOper("update");break;case 4:$sqlQue->setOper("select");break;  }  if($danci==$jiudanci&&$choice==3){  echo "新單詞和舊單詞一樣,無需更新";   }  if($danci==""||($jiudanci==""&&$choice==3)){echo "輸入為空白";return ;  }    $sqlQue->connSql();    }   if($hidd==="news"){  $title=$_POST['title'];  $news=$_POST['news'];  $choice=$_POST['newsel'];  if($choice==="1"){//添加新聞       $sqlnew=new SqlDiy("like","admin");  $sqlnew->setDanci($title);  $sqlnew->setJiudanci($news);  $sqlnew->setOper("insert");  $tempName=date("His");  $urlfile="http://localhost/6/$tempName.html";                             $sqlnew->setUrl($urlfile);  $sqlnew->connNews();  $time=$sqlnew->getTime();  /*必須轉化成本地形式或者用ftp_connect()函數來串連檔案,http協議是只能讀取檔案不能   * 寫檔案,要不然隨便哪個使用者通過http協議就可以修改伺服器的檔案,那就危險了,如果   * 要變更檔也應該通過FTP函數來修改,還要修改一下php.ini設定檔來支援ftp,   * php.ini設定檔中要開啟allow_url_fopen,設定為on*/  $urlfile="file:///C:/news/test/apache2_2/htdocs/6/$tempName.html";  setHtml($urlfile,$news,$title,$time);      }      else {// quety the news       $sqlnew=new SqlDiy("like","admin"); $sqlnew->setDanci($title); $sqlnew->setOper("select"); $sqlnew->connNews();      }   }  ?>


<?php   function setHtml($file,$news,$title,$time){if(!file_exists($file)){$str=file_get_contents("file://C:/news/test/apache2_2/htdocs/6/model.htm");//模板檔案,必須有的file_put_contents($file,$str);}$p=fopen($file,"r+");if(!is_writeable($file)){echo "It is not writable";    return ;}$string="";$string=file_get_contents($file);$replacements[0]="<title>$title</title>";$replacements[1]="<p>$news</p>";$replacements[2]="<p>$title</p>";$replacements[3]="$time";$patterns[0]="/<title>((.*\n)*|(.*\n)).*<\/title>/";$patterns[1]="/<p>.*<\/p>/";$patterns[2]="/<h2>.*<\/h2>/";$patterns[3]="/time must change/";ksort($patterns);ksort($replacements);$string=preg_replace($patterns, $replacements, $string);file_put_contents($file,$string);fclose($p);  }?>  


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>www.codeke.com</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head> <?php    //header("content-type:text/html;charset=utf-8");     class SqlDiy{    private $time;    private $dbtime;    private $pwd;    private $danci; //symbol for the field named title and danci    private $user;    private $jiudanci;  //symbol for the field named jiudanci and newsText    private $oper;    private $url;    function __construct($user,$pwd){    $this->user=$user;    $this->pwd=$pwd;    $this->timeWorkErr();    //$this->createDataBase();    }    function timeWorkErr(){    $this->time=time();    date_default_timezone_set('PRC');    }    function createDataBase(){ //建立一個資料表    $link=mysql_connect('localhost',"root","zhulike");//必須用root帳號和密碼登入    if(!$link){    die('Could not connect: ' . mysql_error());    }      $sql = 'DROP DATABASE discuz';    if(mysql_query($sql, $link)) {    echo "Database my_db created successfully\n";    } else {    echo 'Error creating database: ' . mysql_error() . "\n";    }            mysql_close($link);     }    function connSql(){        $conn=mysql_connect("localhost",$this->user,$this->pwd);    if(!$conn){    echo mysql_error().error_log(mysql_error.date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    }    mysql_select_db("test",$conn) or error_log(mysql_error.date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    mysql_query("set names utf8");    switch($this->oper){    case "select":$query="select * from `danci` where `danci`='$this->danci'";break;     case "delete":$query="delete from `danci` where danci='$this->danci'";break;    case "insert":$query="insert into `danci`(danci)values('$this->danci')";break;    case "update":$query="update `danci` set `danci`='$this->danci' where `danci`='$this->jiudanci'";break;    }    //$query="update user set name='lily' where name='lily'";    mysql_query("select * from `danci` where danci='$this->danci'",$conn);            if(mysql_affected_rows($conn)>0&&$this->oper=="insert"){    echo "<br />單詞庫中已經有該單詞,無需添加";     return ;    }      if(mysql_affected_rows($conn)<1&&$this->oper=="select"){    echo "<br />單詞庫裡沒有該單詞"; //針對查詢操作    return ;    }    if(mysql_affected_rows($conn)<1&&$this->oper=="delete"){    echo "<br />無法刪除一個沒有的單詞"; //針對刪除操作    return ;    }    $res=mysql_query($query,$conn);    if(mysql_affected_rows($conn)<1){    echo "<br />串連資料庫有誤$this->jiudanci--$this->danci";    error_log(mysql_error().date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    }    else {    if($this->oper=="select"){           while($rows=mysql_fetch_object($res)){     echo "<br />".$rows->id."--".$rows->danci."--".$rows->dt;    }    mysql_free_result($res);    }    if($this->oper=="insert"){    echo "<br />插入單詞成功";    }    if($this->oper=="delete"){    echo "<br />刪除單詞成功";    }    if($this->oper=="update"){    echo "<br />更新單詞成功";    }    }        mysql_close($conn);    }    function connNews(){        $conn=mysql_connect("localhost",$this->user,$this->pwd);    if(!$conn){    echo mysql_error().error_log(mysql_error.date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    }    mysql_select_db("test",$conn) or error_log(mysql_error.date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    mysql_query("set names utf8");    switch($this->oper){    case "select":$query="select * from `news` where title like '%$this->danci%'";break;    case "delete":$query="delete from `news` where title='$this->danci'";break;    case "insert":$query="insert into `news`(title,newsText,url)values('$this->danci','$this->jiudanci','$this->url')";break;    }        mysql_query("select title from `news` where title='$this->danci'",$conn);    if(mysql_affected_rows($conn)>0&&$this->oper=="insert"){    echo "<br />已經有該新聞,無需添加";    return ;    }        if(mysql_affected_rows($conn)<1&&$this->oper=="delete"){    echo "<br />無法刪除一個沒有的新聞"; //針對刪除操作    return ;    }    $res=mysql_query($query,$conn);      if(mysql_affected_rows($conn)<1){    echo "<br />串連資料庫有誤";    error_log(mysql_error().date("m月d日 H:i:s",$this->time)."\r\n",3,"c:/error.txt");    }    else {    if($this->oper=="select"){    $tempStr="<h2>搜尋結果:</h2><br /><ul><br />";    while($rows=mysql_fetch_object($res)){        $tempStr .= "<br /><li><a href='$rows->url'>$rows->title</a>發布時間:$rows->dt</li><br />$rows->newsText<br /><br />";    }    $tempStr.="</ul>";echo "$tempStr";    //setdbHtml($tempStr,"test for win32");    mysql_free_result($res);    }    else{    $query="select dt from `news` where title='$this->danci' limit 1";    $res=mysql_query($query,$conn);    $rows=mysql_fetch_object($res);    $this->dbtime=$rows->dt;    if($this->oper=="insert"){    echo "<br />添加新聞成功";    }    if($this->oper=="delete"){    echo "<br />刪除新聞成功";    }    }          }        mysql_close($conn);    }    function getTime(){    return $this->dbtime;    }    function setJiudanci($i){    $this->jiudanci=$i;    }    function setOper($i){    $this->oper=$i;    }    function setDanci($i){    $this->danci=$i;    }    function setUrl($i){            $this->url=$i;      }    }    ?>

其實先理清這些檔案的調用過程就是所謂的架構寫代碼就是最簡單的,不過我還是太低級了!還沒有搞懂用架構去寫代碼,我想就像寫作文一樣,事先先列一個怎麼寫的提綱在去寫作文就會好多了,把每一部分的結構每一個檔案的作用弄清楚是最好不過了。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.