仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1867|回复: 20
打印 上一主题 下一主题

[学习教程] PHP教程之从一个实例入手下手进修PHP

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:54:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
php   manual(PHP手册)肯定是要从网上下载一个的,它很权威,也很全面,我自己认为它是一本很好的参考书,但是不适合新手当教材使用。   3 PHP理论
PHP的很多特色与其他软件或东西有关。使用迄今为止咱们所学到的PHP常识,咱们可以试着创立一个复杂交互的网站。使用这一进程咱们又可以学到很多器材。好吧,咱们如今入手下手专注于一个典范团体网站的建立。

3.1 企图一个站点
普通一个团体站点包含一个接待页面、一个留言本页面、一个书签链接页面、一个计数器、接洽信息,乃至还有照片集和一些音乐文件等等。让咱们从一个题目页面、一个接洽信息页面和一个简历页面入手下手。咱们一样需求尺度的通用的页面头部和底部。

题目页面--front.html


这里咱们有一个十分复杂的html文件:
<HTML>
<HEAD>
<TITLE>
我的团体主页--接待
</TITLE>
</HEAD>
<BODY>
<H1>
我的团体主页
</H1>
<H2>
接待
</H2>
<HR>
<P>
接待来我的舍下,固然这里如今临时还没有甚么。
</P>
<P>
不外我但愿即刻就能够多起来。
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我本人,1999
</I> </SMALL>
</P>
</BODY>
</HTML>

接洽信息页面--count.html

一样咱们又有了一个复杂页面:
<HTML>
<HEAD>
<TITLE>
我的团体主页--接洽信息
</TITLE>
</HEAD>
<BODY>
<H1>
我的团体主页
</H1>
<H2>
接洽信息
</H2>
<HR>
<P>
你可以经由过程1-800-PHP-INFO接洽我
</P>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我本人,1999
</I> </SMALL>
</P>
</BODY>
</HTML>


3.2 HTML到PHP

从下面你可以看出,每一个页面有不异的头部和底部。像下面那样每一个页面都写入不异的信息在任务量少的时分还可以,然而想象一下当有100多页面且你需求全体更改其头部或底部时你要消费多大精神?一页一页的手工更改是一件何等冗杂无趣的工作啊!所以咱们应当为这些页面编写PHP的头部和底部文件,以后咱们只需在每一个HTML页面中援用它们就好了。咱们将把这些include文件放在一个叫include的子目次下。上面咱们就把这些站点的通用内容写进文件中。

全站通用变量设定:common.inc
<?
// 全站通用变量
$MyEmail = "phptalk@tnc.org";
$MyEmailLink = "<a href=\"mailto:$MyEmail\">$MyEmail</a>";
$MyName = "PHP Talk";
$MySiteName = $MyName."'s Home Page";
?>

通用页面头部:header.inc
<?
// 界说通用页面头部
?>
<HTML>
<HEAD>
<TITLE>
<? echo "$MySiteName - $title"; ?>
</TITLE>
</HEAD>
<BODY>
<H1>
<? echo "$MySiteName"; ?>
</H1>
<H2>
<? echo "$title"; ?>
</H2>
<HR>

通用页面底部:footer.inc
<?
// 通用页面底部
?>
<HR>
<P ALIGN="CENTER">
<SMALL> <I>
Copyright ? by
<? echo "$MyName ($MyEmailLink)"; ?>
, 1999
</I> </SMALL>
</P>
</BODY>
</HTML>

新的页面front.php3:
<?
include("include/common.inc");
$title = "Welcome";
include("include/header.inc");
?>
<P>
接待来我的舍下,固然这里如今临时还没有甚么。
</P>
<P>
不外我但愿即刻就能够多起来。
</P>
<?
include("include/footer.inc");
?>

新的cont.php3:
<?
include("include/common.inc");
$title = "Contact Information";
include("include/header.inc");
?>
<P>
你可以经由过程1-800-PHP-INFO接洽我
</P>
<?
include("include/footer.inc");
?>

如今你就能够猜出如许布置的优点了。假如你想修改页面的头部或底部,你只需求修改响应的文件就能够了。假如你要修正你的e-mail地址乃至你的名字,只需修正common.inc文件就好了。别的值得注重的是你可以把具有任何文件名或文件扩大名的文件包括进你的文件中,你乃至可以包括其他站点上的文件。

3.3 计数器

让咱们在首页上加上一个计数器。这个例子已被讲过量次了,然而仍是有益于演示如何读写文件和创立本人的函数。counter.inc包括以下代码:
<?
/*
|| 一个复杂的计数器
*/
function get_hitcount($counter_file)
{
/* 将计数器归零
如许假如计数器还未被利用,初始值将是1
你固然也能够把初始值设成20000来哄人咯
*/
$count=0;
// 假如寄存计数器文件已存在,读取个中的内容
if ( file_exists($counter_file) )
{
$fp=fopen($counter_file,"r");
// 咱们只取了前20位,但愿你的站点不要太受接待啊
$count=0+fgets($fp,20);
// 因为函数fgets()前往字符串,咱们可以经由过程加0的办法将其主动转换为整数
fclose($fp);
// 对文件操作终了
}
// 增添一次计数值
$count++;
// 将新的计数值写入文件
$fp=fopen($counter_file,"w");
fputs($fp,$count);
fclose($fp);
# 前往计数值
return ($count);
}
?>
然后咱们更改front.php3文件以显示这个计数器:
<?
include("include/counter.inc");
// 我把计数值放在文件counter.txt中,读出并输入
printf ("<CENTER><B>%06d</B></CENTER> <BR> \n",
get_hitcount("counter.txt"));
include("include/footer.inc");
?>
看看咱们的新front.php3

3.4 反应表单

让咱们再添加一个反应表单以便你的阅读者填写并e-mail给你。举例来讲咱们用一种很复杂的办法完成它,咱们只需求两个页面:一个为阅读者供应输出表单;一个取得表双数据并处置、mail给你。

PHP中获得表双数据是很复杂的。当一个表单被发送后,表单中所包括的各个元素被赋上了响应的值,而如许就能够像援用普通变量一样利用了。
<FORM name="myform" ACTION="process_form.php3" METHOD="POST">
<INPUT TYPE="TEXT" NAME="mytext" VALUE="Some Value">
</FORM>

在process_form.php3中,变量$mytext就被付与了输出的值--十分复杂!一样的,你可以从列表框、多选框、单选框、按钮等表单位素中获得变量值。你独一要做的就是为表单中的每个元素取名以便未来可以援用。

依据这个办法,咱们可以生成一个复杂的包括三个元素的表单:姓名、e-mail地址和留言。当阅读者发送表单后,处置该表单的PHP页面(sendfdbk.php3)读取数据,反省姓名是不是为空,最初将数据mail给你。

表单:form.php3
<?
include("include/common.inc");
$title = "Feedback";
include("include/header.inc");
?>
<P>
<FORM ACTION="sendfdbk.php3" METHOD="POST">
<INPUT TYPE="text" NAME="name" value="Your name" SIZE="20" MAXLENGTH="30">
<INPUT TYPE="text" MAXLENGTH="40" WIDTH="20" value="Your Email" NAME="email">
<BR>
<TEXTAREA ROWS="7" COLS="40" NAME="comment">
Your feedback on my home page.
</TEXTAREA>
<BR>
<INPUT TYPE="submit" VALUE="Send Feedback!">
</FORM>
</P>
<?
include("include/footer.inc");
?>

处置表单:sendfdbk.php3
<?
include("include/common.inc");
$title = "Feedback";
include("include/header.inc");
if ( $name == "" )
{
// 如今我很厌恶匿名的留言!
echo "Duh ? How come you are anonymous?";
}
elseif ($name == "Your name")
{
// 这个阅读者真是不想泄漏姓名啊!
echo "Hello ? <B>Your name</B> is supposed to be replaced with
your actual name!</B>";
}
else
{
// 输入一段礼貌的感激语
echo "
Hello, $name.
<BR>
Thank you for your feedback. It is greatly appreciated.
<BR>
Thanking you
<BR>
$MyName <BR>
$MyEmailLink
";
// 最初mail出去
mail($MyEmail, "Feedback.","
Name : $name
E-mail : $email
Comment : $comment
");
}
include("include/footer.inc");
?>

3.5 复杂的站内搜刮引擎

PHP可以挪用内部法式。在Unix情况下咱们可以使用法式grep完成一个复杂的搜刮引擎。咱们可以做的略微庞杂一些:利用一个页面既输入一个表单供用户输出搜刮字串又输入查询了局。
<?
include("include/common.inc");
$title = "Search";
include("include/header.inc");
?>
<P>
<FORM ACTION="<? echo "$PHP_SELF"; ?>" METHOD="POST">
<INPUT TYPE="text" NAME="searchstr" value="<? echo "$searchstr"; ?>"
SIZE="20" MAXLENGTH="30">
<INPUT TYPE="submit" VALUE="Search!">
</FORM>
</P>
<?
if ( ! empty($searchstr) )
{
// empty()用来反省查询字串是不是为空
// 假如不为空,挪用grep查询
echo "<HR>\n";
// 挪用grep对一切文件停止巨细写非敏感形式的查询
$cmdstr = "grep -i $searchstr *";
$fp = popen( $cmdstr, "r" ); // 履行号令并输入管道
$myresult = array(); // 存储查询了局
while( $buffer = fgetss ($fp, 4096))
{
// grep前往如许格局: 文件名:婚配字串呈现行数
// 因而咱们使用函数split()分别处置数据
list($fname, $fline) = split(":",$buffer, 2);
// 咱们只输入第一次婚配的了局
if ( !defined($myresult[$fname]))
$myresult[$fname] = $fline;
}
// 如今咱们将了局存储在数组中,上面就能够处置并输入了
if ( count($myresult) )
{
echo "<OL>\n";
while(list($fname,$fline) = each($myresult))
echo "<LI>
<A HREF=\"$fname\">$fname</A> : $fline </LI>\n";
echo "</OL>\n";
}
else
{
// 假如没有查询了局
echo "Sorry. Search on <B>$searchstr</B>
returned no results.<BR>\n";
}
pclose($fp);
}
?>
<?
include("include/footer.inc");
?>


正文:

PHP_SELF是PHP内建的变量。包括以后文件名。
fgets()按行读取文件,最多4096(指定)字符长度。
fgetss()与fgets()类似,只是解析输入的HTML标志。
split()有一个参数是2,由于咱们只需求把输入分红两局部。别的需求省略":"。
each()是一个数组操作函数,用来更便利的遍历全部数组。
popen()、pclose()与fopen()、fclose()的功效很类似,只是增添了管道处置。
请注重以上的代码并非完成一个搜刮引擎的好举措。这只是有助于咱们更勤学习PHP而举出的一个例子罢了。幻想的情形是你应当创立一个包括关头字的数据库然落后行搜刮。

转自php中文用户
掌握静态网页的制作技术是学习开发网站的先决条件,这一点就讲到这里,因为这篇文章不是教程文章,也就不对技术进行深入的刨析了。
谁可相欹 该用户已被删除
沙发
发表于 2015-2-4 06:58:30 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
第二个灵魂 该用户已被删除
板凳
发表于 2015-2-6 16:00:17 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
再见西城 该用户已被删除
地板
发表于 2015-2-7 19:00:23 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
柔情似水 该用户已被删除
5#
发表于 2015-2-22 23:18:55 | 只看该作者
做为1门年轻的语言,php一直很努力。
分手快乐 该用户已被删除
6#
发表于 2015-3-7 04:14:32 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
老尸 该用户已被删除
7#
发表于 2015-3-14 08:47:53 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
兰色精灵 该用户已被删除
8#
发表于 2015-3-17 16:10:12 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
若相依 该用户已被删除
9#
发表于 2015-3-24 11:19:59 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
不帅 该用户已被删除
10#
发表于 2015-3-26 18:53:46 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
只想知道 该用户已被删除
11#
发表于 2015-3-30 05:09:36 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
莫相离 该用户已被删除
12#
发表于 2015-3-30 16:09:00 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
变相怪杰 该用户已被删除
13#
发表于 2015-4-26 02:12:04 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
飘飘悠悠 该用户已被删除
14#
发表于 2015-4-26 17:09:36 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
admin 该用户已被删除
15#
发表于 2015-5-5 10:36:02 | 只看该作者
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
深爱那片海 该用户已被删除
16#
发表于 2015-6-15 20:55:20 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
冷月葬花魂 该用户已被删除
17#
 楼主| 发表于 2015-6-21 22:15:25 | 只看该作者
基础有没有对学习php没有太大区别,关键是兴趣。
蒙在股里 该用户已被删除
18#
发表于 2015-6-23 21:10:25 | 只看该作者
当然这种网站的会员费就几十块钱。
乐观 该用户已被删除
19#
发表于 2015-7-9 17:27:25 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
活着的死人 该用户已被删除
20#
发表于 2015-7-17 01:24:01 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 17:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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