PHP在大型网站开发中的一些疑问-Php-优质IT资源分享社区

admin
管理员
管理员
  • UID1
  • 粉丝27
  • 关注4
  • 发帖数581
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:178回复:0

  PHP在大型网站开发中的一些疑问

楼主#
更多 发布于:2016-06-02 20:45

php以其易用性得到敏捷的推行,但易用并不是说就能用好它,实践上很多程序员用它很简单的立一个个web运用体系,但又有多少人细心的思考过他们的代码,是不是简单保护、是不是满足强健、否功率满足高、是不是满足安全,当php用于树立大型网站时这些就变成很要害的要素。下面我

php以其易用性得到敏捷的推行,但易用并不是说就能用好它,实践上很多程序员用它很简单的立一个个web运用体系,但又有多少人细心的思考过他们的代码,是不是简单保护、是不是满足强健、否功率满足高、是不是满足安全,当php用于树立大型网站时这些就变成很要害的要素。下面咱们从较细微的疑问开端评论,直至一些丧命的过错。共分三有些。

第一有些、较细微的过错

一、printf(),

该函数首要用来格局化显现数据。当你要改动某个数据的显现格局时才运用。

例如以不一样的精度来显现pi(3.1415926)的值。

以下为引证的内容:

<?php

/*

* the three faces of π

*/

printf ("pi is: %.2f\n

\n", m_pi);

printf ("pi is also: %.3f\n

\n", m_pi);

printf ("pi is also: %.4f\n

\n", m_pi);

?>

但很多程序员仅仅为显现一些变量值和函数返回值运用该函数。由于printf()在显现数据前要先格局化该数据以速度较慢,因而,仅为了显现数据时运用print和echo,以进步速度。

字串6

二、语意查看

php是一种弱类型言语,也即是说在运用一个变量前不必界说,这么给编程带来了很大的便利和灵敏,但你自己有必要知道该变量到底应该是哪种类型,由于该变量在运转时仍实践对应着某一种类型(各种类型之间能够自在相互变换),没有类型的变量是不存在的。有也许php并不能查看出你的语意过错,但由于变量类型的改变,会致使一些潜在的疑问的发作。别的一个值得注意的疑问是变量的规模,它也也许会致使一些潜在的疑问的发作。

在php中有以下几种基本变量:

boolean, resource, integer, double, string, array

and object。

三、暂时变量的运用

暂时变量的乱用会致使程序运转功率的下降。何时运用暂时变量可根据以下两点思考:

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);

}

?>

四、客户端和服务器端代码的别离

客户端和服务器端代码的在php程序中实践上即是html代码和php言语代码,很多人把html和php句子混合在一个文件里,使得这文件很大,这种个性对程序的保护和再开发很不利,不适合大型站点的开发。通常有两种办法把html和php句子分隔:

1、编写专用api,例如:

index.php ? the client side

以下为引证的内容:

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; 字串4

}

function print_body ()

{

global $site_info;

print nl2br ($site_info->body);

}

function print_links ()

{

global $site_info;

$links = explode ("\n", $site_info->links);

$names = explode ("\n",

$site_info->link_names);

for ($i = 0; $i < count ($links); $i++)

{

print "\t\t\t

[url=file:///T:/%22$links[$i]/%22]$names[$i][/url]

\n

\n";

}

}

?>

这种办法使得程序看起来比较简练,并且履行速度也较快。

2、运用模板的办法

这种办法使得程序看起来更简练,相同完成上面的功用,可用以下代码:

以下为引证的内容:

字串8

%%page_title%%

%%page_links%%

%%page_content%%

用占位符替代要动态生成的内容,然后用一解析程序剖析该模板文件,把占位符用际的内容更换。种办法使得即便不会运用php的页面制作人员也能修改模板文件。这种办法的缺点是履行功率不高,由于要解说模板文件。一起完成起来也比较复杂。

注: www.thewebmasters.net的 fasttemplate

class可便利的完成以上功用。

五、不要用过期的函数

作为一种自在软件,php开展很快,其间的很多函数都已过期,例如:

以下为引证的内容:

while (1):

print "5";

if ($idx++ == 5):

break;

endif;

endwhile;

尽管还能用但功率必定不高,并且也许在今后的版别中会禁用,致使程序不能运转。因而要常常对照最新php手册查看那些函数已过期及时批改。

优质IT资源分享社区为你提供此文。

本站有大量优质php教程视频,资料等资源,包含php基础教程,高级进阶教程等等,教程视频资源涵盖传智播客,极客学院,达内,北大青鸟,猎豹网校等等IT职业培训机构的培训教学视频,价值巨大。欢迎点击下方链接查看

php教程视频

优质IT资源分享社区(www.itziyuan.top)
一个免费,自由,开放,共享,平等,互助的优质IT资源分享网站。
专注免费分享各大IT培训机构最新培训教学视频,为你的IT学习助力!

!!!回帖受限制请看点击这里!!!
!!!资源失效请在此版块发帖说明!!!

[PS:按 CTRL+D收藏本站网址~]

——“优质IT资源分享社区”管理员专用签名~

本版相似帖子

游客