PHP网站制作之php编写大型网站成绩集(from yesky)
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。成绩 php编写大型网站成绩集PHP以其易用性失掉敏捷的推行,但易用并非说就可以用好它,实践上很多法式员用它很轻易的立一个个WEB使用体系,但又有几何人细心的思索过他们的代码,是不是轻易保护、是不是足够强健、否效力足够高、是不是足够平安,当PHP用于创立大型网站时这些就成为很关头的要素。上面咱们从较稍微的成绩入手下手会商,直至一些致命的毛病。共分三局部。
第一局部、较稍微的毛病
1、Printf(),
该函数次要用来格局化显示数据。当你要改动某个数据的显示格局时才利用。
例如以分歧的精度来显示PI(3.1415926)的值。
<?php
/*
* The three faces of Π
*/
printf ("Pi is: %.2f
", M_PI);
printf ("Pi is also: %.3f
", M_PI);
printf ("Pi is also: %.4f
", M_PI);
?>
但很多法式员仅仅为显示一些变量值和函数前往值利用该函数。由于Printf()在显示数据前要先格局化该数据以速度较慢,因而,仅为了显示数据时使用print和echo,以进步速度。
2、语意反省
PHP是一种弱类型言语,也就是说在利用一个变量前不必界说,如许给编程带来了很大的便利和天真,但你本人必需晓得该变量究竟应当是哪一种类型,由于该变量在运转时仍实践对应着某一品种型(各类类型之间可以自在相互转换),没有类型的变量是不存在的。有能够PHP其实不能反省出你的语意毛病,但因为变量类型的变更,会招致一些潜伏的成绩的产生。别的一个值得注重的成绩是变量的局限,它也能够会招致一些潜伏的成绩的产生。
在PHP中有以下几种根基变量:
Boolean, resource, integer, double, string, array and object。
3、一时变量的利用
一时变量的滥用会招致法式运转效力的下降。什么时候利用一时变量可基于以下两点思索:
1、该变量是不是最少利用两次。
2、该变量的利用是不是会明显进步法式的可读性。
假如一条也不知足,则省略该变量的利用。例如:
<?php
$tmp = date ("F d, h:i a"); /* ie January 3, 2:30 pm */
print $tmp;
?>
就应当改成:
<?php
print date ("F d, h:i a");
?>
又如:
<?php
// string reverse_characters(string str)
// Reverse all of the characters in a string.
function reverse_characters ($str)
{
return implode ("", array_reverse (preg_split("//", $str)));
}
?>
的可读性不强,可改成:
<?php
// string reverse_characters(string str)
// Reverse all of the characters in a string.
function reverse_characters ($str)
{
$characters = preg_split ("//", $str);
$characters = array_reverse ($characters);
return implode ("", $characters);
}
?>
4、客户端和办事器端代码的分别
客户端和办事器端代码的在PHP法式中实践上就是HTML代码和PHP言语代码,良多人把HTML和PHP语句夹杂在一个文件里,使得这文件很大,这类作风对法式的保护和再开辟很晦气,不合适大型站点的开辟。普通有两种办法把HTML和PHP语句分隔:
1、编写公用API,例如:
index.php ? The Client side
<?php include_once ("site.lib"); ?>
<html>
<head>
<title> <?php print_header (); ?> </title>
</head>
<body>
<h1> <?php print_header (); ?> </h1>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25%">
<?php print_links (); ?>
</td>
<td>
<?php print_body (); ?>
</td>
</tr>
</table>
</body>
</html>
site.lib ? The server side code
<?php
$dbh = mysql_connect ("localhost", "sh", "pass")
or die (sprintf ("Cannot connect to MySQL [%s]: %s",
mysql_errno (), mysql_error ()));
@mysql_select_db ("MainSite")
or die (sprintf ("Cannot select database [%s]: %s",
mysql_errno (), mysql_error ()));
$sth = @mysql_query ("SELECT * FROM site", $dbh)
or die (sprintf ("Cannot execute query [%s]: %s",
mysql_errno (), mysql_error ()));
$site_info = mysql_fetch_object ($sth);
function print_header ()
{
global $site_info;
print $site_info->header;
}
function print_body ()
{
global $site_info;
print nl2br ($site_info->body);
}
function print_links ()
{
global $site_info;
$links = explode ("
", $site_info->links);
$names = explode ("
", $site_info->link_names);
for ($i = 0; $i < count ($links); $i++)
{
print "
<a href="$links[$i]">$names[$i]</a>
";
}
}
?>
这类办法使得法式看起来对照简约,并且履行速度也较快。
2、利用模板的办法
这类办法使得法式看起来更简约,一样完成下面的功效,可用以下代码:
<html>
<head>
<title>%%PAGE_TITLE%%</title>
</head>
<body %%BODY_PROPERTIES%%>
<h1>%%PAGE_TITLE%%</h1>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="25%">%%PAGE_LINKS%%</td>
<td>%%PAGE_CONTENT%%</td>
</tr>
</table>
</body>
</html>
用占位符取代要静态生成的内容,然后用一解析法式剖析该模板文件,把占位符用际的内容交换。种办法使得即便不会利用PHP的页面制造人员也能修正模板文件。这类办法的弱点是履行效力不高,由于要注释模板文件。同时完成起来也对照庞杂。
注: www.thewebmasters.net的 FastTemplate class可便利的完成以上功效。
5、不要用过时的函数
作为一种自在软件,PHP开展很快,个中的良多函数都已过时,例如:
while (1):
print "5";
if ($idx++ == 5):
break;
endif;
endwhile;
固然还能用但效力一定不高,并且能够在今后的版本中会禁用,招致法式不克不及运转。因而要常常对比最新PHP手册反省那些函数已过时实时修改。 根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。 兴趣是最好的老师,百度是最好的词典。 因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 爱上php,他也会爱上你。 使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的 如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域, 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 当然这种网站的会员费就几十块钱。 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
页:
[1]