찾다
php教程php手册收集的php编写大型网站问题集
收集的php编写大型网站问题集Jun 13, 2016 pm 12:33 PM
php크기가 큰홍보모으다사용하기 쉬움사용의 용이성사용~의쓰다웹사이트빠른질문

PHP以其易用性得到迅速的推广,但易用并不是说就能用好它,实际上许多程序员用它很容易的立一个个WEB应用系统,但又有多少人仔细的考虑过他们的代码,是否容易维护、是否足够健壮、否效率足够高、是否足够安全,当PHP用于建立大型网站时这些就成为很关键的因素。下面我们从较轻微的问题开始讨论,直至一些致命的错误。共分三部分。 
  第一部分、较轻微的错误 

  一、Printf(), 
    该函数主要用来格式化显示数据。当你要改变某个数据的显示格式时才使用。 
  例如以不同的精度来显示PI(3.1415926)的值。 
     /* 
   * 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,以提高速度。 

  二、语意检查 
    PHP是一种弱类型语言,也就是说在使用一个变量前不用定义,这样给编程带来了很大的方便和灵活,但你自己必须知道该变量到底应该是哪种类型,因为该变量在运行时仍实际对应着某一种类型(各种类型之间可以自由互相转换),没有类型的变量是不存在的。有可能PHP并不能检查出你的语意错误,但由于变量类型的变化,会导致一些潜在的问题的发生。另外一个值得注意的问题是变量的范围,它也可能会导致一些潜在的问题的发生。 
  在PHP中有以下几种基本变量: 
  Boolean, resource, integer, double, string, array and object。 

  三、临时变量的使用 
    临时变量的滥用会导致程序运行效率的降低。何时使用临时变量可基于以下两点考虑: 
  1、该变量是否至少使用两次。 
  2、该变量的使用是否会显著提高程序的可读性。 
  如果一条也不满足,则省略该变量的使用。例如: 
     $tmp = date ("F d, h:i a"); /* ie January 3, 2:30 pm */ 
   print $tmp; 
  ?> 
  就应该改成: 
     print date ("F d, h:i a"); 
  ?> 

  又如: 
  
  // string reverse_characters(string str) 
  // Reverse all of the characters in a string. 
  function reverse_characters ($str) 
  { 
   return implode ("", array_reverse (preg_split("//", $str))); 
  } 

  ?> 
  的可读性不强,可改成: 
  
  // 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 
   
   
  

 
   <?php print_header (); ?>  
   
   
  

  

 
   
   
   
   
   
  
 
   
  
 
   
  
 
   
   

   
  site.lib ? The server side code 

   
  
  $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 ("\n", $site_info->links); 
   $names = explode ("\n", $site_info->link_names); 

  for ($i = 0; $i   { 
   print "\t\t\t 
   $names[$i] 
   \n
\n"; 
  } 
  } 
  ?> 

  这种方法使得程序看起来比较简洁,而且执行速度也较快。 

  2、使用模板的方法 
  这种方法使得程序看起来更简洁,同样实现上面的功能,可用以下代码: 
   
   
  %%PAGE_TITLE%% 
   
   
  

%%PAGE_TITLE%%

 
   
   
   
   
   
  
%%PAGE_LINKS%%%%PAGE_CONTENT%%
 
   
   

    用占位符代替要动态生成的内容,然后用一解析程序分析该模板文件,把占位符用际的内容替换。种方法使得即使不会使用PHP的页面制作人员也能修改模板文件。这种方法的缺点是执行效率不高,因为要解释模板文件。同时实现起来也比较复杂。 

  注: www.thewebmasters.net的 FastTemplate class可方便的实现以上功能。 

  五、不要用过时的函数 
  作为一种自由软件,PHP发展很快,其中的很多函数都已过时,例如: 

  while (1): 
  print "5"; 
  if ($idx++ == 5): 
  break; 
  endif; 
  endwhile; 

    虽然还能用但效率肯定不高,而且可能在以后的版本中会禁用,导致程序不能运行。因此要经常对照最新PHP手册检查那些函数已过时及时修正。
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)如何在技嘉主板上设置键盘启动功能 (技嘉主板启用键盘开机方式)Dec 31, 2023 pm 05:15 PM

技嘉的主板怎么设置键盘开机首先,要支持键盘开机,一定是PS2键盘!!设置步骤如下:第一步:开机按Del或者F2进入bios,到bios的Advanced(高级)模式普通主板默认进入主板的EZ(简易)模式,需要按F7切换到高级模式,ROG系列主板默认进入bios的高级模式(我们用简体中文来示范)第二步:选择到——【高级】——【高级电源管理(APM)】第三步:找到选项【由PS2键盘唤醒】第四步:这个选项默认是Disabled(关闭)的,下拉之后可以看到三种不同的设置选择,分别是按【空格键】开机、按组

php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

CS玩家的首选:推荐的电脑配置CS玩家的首选:推荐的电脑配置Jan 02, 2024 pm 04:26 PM

1.处理器在选择电脑配置时,处理器是至关重要的组件之一。对于玩CS这样的游戏来说,处理器的性能直接影响游戏的流畅度和反应速度。推荐选择IntelCorei5或i7系列的处理器,因为它们具有强大的多核处理能力和高频率,可以轻松应对CS的高要求。2.显卡显卡是游戏性能的重要因素之一。对于射击游戏如CS而言,显卡的性能直接影响游戏画面的清晰度和流畅度。建议选择NVIDIAGeForceGTX系列或AMDRadeonRX系列的显卡,它们具备出色的图形处理能力和高帧率输出,能够提供更好的游戏体验3.内存电

广联达软件电脑配置推荐;广联达软件对电脑的配置要求广联达软件电脑配置推荐;广联达软件对电脑的配置要求Jan 01, 2024 pm 12:52 PM

广联达软件是一家专注于建筑信息化领域的软件公司,其产品被广泛应用于建筑设计、施工、运营等各个环节。由于广联达软件功能复杂、数据量大,对电脑的配置要求较高。本文将从多个方面详细阐述广联达软件的电脑配置推荐,以帮助读者选择适合的电脑配置处理器广联达软件在进行建筑设计、模拟等操作时,需要进行大量的数据计算和处理,因此对处理器的要求较高。推荐选择多核心、高主频的处理器,如英特尔i7系列或AMDRyzen系列。这些处理器具有较强的计算能力和多线程处理能力,能够更好地满足广联达软件的需求。内存内存是影响计算

主板上的数字音频输出接口-SPDIF OUT主板上的数字音频输出接口-SPDIF OUTJan 14, 2024 pm 04:42 PM

主板上SPDIFOUT连接线序最近我遇到了一个问题,就是关于电线的接线顺序。我上网查了一下,有些资料说1、2、4对应的是out、+5V、接地;而另一些资料则说1、2、4对应的是out、接地、+5V。最好的办法是查看你的主板说明书,如果找不到说明书,你可以使用万用表进行测量。首先找到接地,然后就可以确定其他的接线顺序了。主板vdg怎么接线连接主板的VDG接线时,您需要将VGA连接线的一端插入显示器的VGA接口,另一端插入电脑的显卡VGA接口。请注意,不要将其插入主板的VGA接口。完成连接后,您可以

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

星露谷物语硬木怎么快速收集星露谷物语硬木怎么快速收集Mar 26, 2024 am 11:21 AM

星露谷物语中硬木是一种重要的合成材料,我们在游戏中能够有着很多用途,所以在日常的时候可以囤一下,硬木具体有什么途径能够获得呢,下面就为大家带来星露谷物语硬木获取途径,有需要的话可以参考一下。星露谷物语硬木获取途径1、每天前去秘密森林采掘树桩可以快速获得硬木。2、在秘密森林中采掘树桩和打怪有概率获得桃花心木种籽。3、将种子种在院子中会长出桃花心木。4、最后将桃花心木采掘后也可以快速获得大量硬木。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.