`
cyxlgzs
  • 浏览: 89928 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

花了一晚上学的php程序

 
阅读更多

背景:在给某个客户做一个调查问卷项目时(一个很小的项目,姑且也叫项目吧)。开始根据需求和自身的熟悉程度,决定采用asp.net来做。无非也就是实现一个记事本的IO操作。后面因为客户服务器环境的问题,结果改用PHP做。对于PHP只有耳闻,而且听的看的次数也相当的多,因为一直都比较火,但是都久久没有碰它。现在需求来了,没法,就只有硬着头皮去看看。而且时间紧迫,改的的程序第二天就要用。

先把用C#写的代码贴出来

protected void commitInfo_Click(object sender, EventArgs e)
    {
        Monitor.Enter(lockObject);

        try
        {
            string name = this.name.Value.Trim();
            string idcard = this.idcard.Value.Trim();
            string phone = this.phone.Value.Trim();
            string company = this.company.Value.Trim();
            string code = this.code.Value.Trim();
            string address = this.address.Value.Trim();
            string msg = "";
            string filePath = Server.MapPath(".") + "\\data\\result.txt";
            string text = File.ReadAllText(filePath);

            if (!string.IsNullOrEmpty(text))
            {
                if (Regex.IsMatch(text, idcard))
                {
                    this.scriptDiv.InnerHtml = "<script>alert('当前身份证号的用户已经提交过了');</script>";
                    return;
                }
            }
            if (string.IsNullOrEmpty(name))
            {
                msg += "姓名不能为空,请填写!\n";
            }
            if (string.IsNullOrEmpty(idcard))
            {
                msg += "身份证不能为空,请填写!\n";
            }
            if (string.IsNullOrEmpty(phone))
            {
                msg += "联系电话不能为空,请填写!\n";
            }
            if (string.IsNullOrEmpty(address))
            {
                msg += "联系地址不能为空,请填写!\n";
            }

            if (!string.IsNullOrEmpty(msg))
            {
                this.scriptDiv.InnerHtml = "<script>alert('" + msg + "');</script>";
                return;
            }

            using (StreamWriter sw = File.AppendText(filePath))
            {
                sw.WriteLine("姓名:       " + name);
                sw.WriteLine("身份证号:   " + idcard);
                sw.WriteLine("联系电话:   " + phone);
                sw.WriteLine("单位:       " + company);
                sw.WriteLine("通讯地址:   " + address);
                sw.WriteLine("邮政编码:   " + code);
                sw.WriteLine("提交时间:   " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

                sw.WriteLine();

                //sw.Flush();
                //sw.Close();
            }
            this.scriptDiv.InnerHtml = "<script>setCookie('IDCARD','" + idcard + "',100);alert('恭喜你,提交成功');</script>";
        }
        catch (Exception ex)
        {
            this.scriptDiv.InnerHtml = "<script>alert('" + ex.Message + "');</script>";
        }
        finally
        {
            Monitor.Exit(lockObject);
        }
    }


其实也就是把提交的用户信息保存在记事本中,简单的功能。其中涉及到了并发的控制和资源的释放就是了。然后需要将类似的功能用PHP实现。

本来功能很简单,只是对于php连环境都不知道怎么搭建,所以还是比较盲目

先是在网上找一些搭建PHP环境的资料,找了一些,也不知道哪个环境好,结果采用了一种最简单的PHP环境搭建,就是PHPNOW,所谓的一键搭建PHP的环境。呵呵,不过这玩意是比较简单,就跟着说明一步一步的选择就好了,结果PHP+MySQL+apache的环境就搭建好了

接下来的就是看PHP的语法了,其实语言都有相同的,第一眼看上去,觉得和javascript语言挺相似的,刚开始接触的第一感觉,也不知道是不是这样。结果就写了一下的程序

<?php
try
{
$name = $_POST["name"];
$idcard = $_POST["idcard"];
$phone = $_POST["phone"];
$code = $_POST["code"];
$address = $_POST["address"];
$company = $_POST["company"];
date_default_timezone_set ('PRC'); 
$datetime = date( "Y-m-d H:i:s");

$FileName = $_SERVER['DOCUMENT_ROOT']."\\data\\result.txt";
$data=""; 
$fp=null;

try
{
$fp=fopen($FileName,"r"); 
}
catch(Exception $e){
	}
while(!feof($fp)) 
{
$data.=fread($fp,1024*1024*5); 
} 
fclose($fp); 

if (ereg($idcard,$data)){
	echo "<div style='font-size:18pt;color:red;'>改身份证号码已经提交过了!<a href='Index.php'>返回</a></div>";
}else{
$fd = fopen($FileName, "a");
flock($fd, LOCK_EX);
fwrite($fd, "姓名:		".$name."\r\n");
fwrite($fd, "身份证号码:	".$idcard."\r\n");
fwrite($fd, "联系电话:	".$phone."\r\n");
fwrite($fd, "单位名称:	".$company."\r\n");
fwrite($fd, "邮政编码:	".$code."\r\n");
fwrite($fd, "提交时间:	".$datetime."\r\n");
fwrite($fd, "通讯地址:	".$address."\r\n");
fwrite($fd, "\r\n");
flock($fd, LOCK_UN);
fclose($fd);
echo "<script>setCookie('IDCARD','".$idcard."',60);</script>";	
echo "<div style='font-size:18pt;color:red;'>恭喜你,提交成功!<a href='Index.php'>返回</a></div>";
}

//echo "<script language='javascript'>";
//echo "alert('恭喜你,提交成功');";
//echo "</script>";
//header("Location: Index.php"); 
}
catch(Exception $e)
{
	echo "出错:".$e->getMessage();
}
?>

(没处理缩进问题,看起来是有点乱,因为用记事本写的,所以就没去管,多包涵)
虽然对于PHP我还是门外汉,但是对于这一晚上的成果我还是比较满意的,呵呵。语言都是有共同点的,接下来就慢慢深入吧

有一句话是很有道理的:很多东西都是被逼出来的!但这未尝不是一件好事,对吗.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics