设为首页 收藏本站
查看: 687|回复: 0

[经验分享] 花了一晚上学的php程序

[复制链接]

尚未签到

发表于 2017-3-31 10:19:29 | 显示全部楼层 |阅读模式
  背景:在给某个客户做一个调查问卷项目时(一个很小的项目,姑且也叫项目吧)。开始根据需求和自身的熟悉程度,决定采用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我还是门外汉,但是对于这一晚上的成果我还是比较满意的,呵呵。语言都是有共同点的,接下来就慢慢深入吧
  有一句话是很有道理的:很多东西都是被逼出来的!但这未尝不是一件好事,对吗.

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-358016-1-1.html 上篇帖子: php实现记住密码自动登录方法 下篇帖子: PHP变量妙用函数之extract
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表