仓酷云

标题: PHP网站制作之php编写大型网站成绩集(from yesky) [打印本页]

作者: 若相依    时间: 2015-2-4 00:23
标题: 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手册反省那些函数已过时实时修改。   根据功能来进行封装等。很多的不懂,在使用搜索引擎查找,或者请教老师和在老师详细的讲解、指导下,都能顺利解决。
作者: 冷月葬花魂    时间: 2015-2-4 12:55
兴趣是最好的老师,百度是最好的词典。
作者: 若相依    时间: 2015-2-9 22:43
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 活着的死人    时间: 2015-2-11 20:23
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 灵魂腐蚀    时间: 2015-2-13 05:13
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 仓酷云    时间: 2015-3-2 18:15
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 柔情似水    时间: 2015-3-10 23:31
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 兰色精灵    时间: 2015-3-12 22:51
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 愤怒的大鸟    时间: 2015-3-17 23:07
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 金色的骷髅    时间: 2015-3-25 05:19
爱上php,他也会爱上你。
作者: 谁可相欹    时间: 2015-3-30 08:41
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 因胸联盟    时间: 2015-4-6 05:56
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 分手快乐    时间: 2015-4-10 17:14
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 再见西城    时间: 2015-4-13 15:17
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
作者: 小女巫    时间: 2015-4-21 17:16
对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。
作者: 不帅    时间: 2015-4-21 23:47
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 只想知道    时间: 2015-4-26 23:39
当然这种网站的会员费就几十块钱。
作者: 蒙在股里    时间: 2015-4-30 05:46
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
作者: 变相怪杰    时间: 2015-5-5 10:11
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 第二个灵魂    时间: 2015-5-7 20:53
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2