찾다
백엔드 개발PHP 튜토리얼PHP教程.经验技巧(中)_PHP教程

PHP教程.经验技巧(中)_PHP教程

Jul 13, 2016 pm 05:21 PM
php암호크기개발하다우리를지도 시간문서친구~의웹사이트규모

三、文件是我们的朋友
  无论你在开发的网站规模的大小,都应该意识到代码重用的重要性,无论这些代码是HTML、还是PHP代码。例如,你必须至少每年改变一次包含版权信息的页脚,如果你的网站含有1000个页面,每年修改一次也是个很烦人的事儿。

  在PHP中,至少有几个函数可以帮助你实现代码重用的目的,所使用的函数取决于你所重用的代码,主要的函数有:

  * include() and include_once()

  * require() and require_once()

  include()函数包含并对给定的文件进行计算,例如:

  include(/home/me/myfile);

  在include文件中的任何代码都在include()出现的代码范围内执行,你可以通过联合使用include()和fopen()在自己的服务器上包含静态文件,在另一台服务器上包含目标文件。

  include_once()的功能与include()相同,二者之间的区别在于它会检查一个文件中的代码是否已经包含在现有的脚本中,如果代码已经存在,则不会再次包含它。

   require()函数用给定文件的内容取代它本身,这一代替过程发生在PHP引擎编译代码期间,而不是在执行期间进行,它不象include()那样会首先进行计算。require()函数更多地用在静态元素中,而include()更多地用于动态元素中。与include_once()类似的是,require_once()将首先检查是否已经插入给定的代码,如果代码已经存在,就不再插入了。

  为也了解其内容,在版权信息、静态文字和其他不包含变量的元素或者依赖其他正在执行的脚本的元素中我更趋向于使用require函数。例如:

  

  

Something

  

  [a lot of content]

  

  // insert copyright

  require(/home/me/mycopyright);

  ?>

  

  

  另一方面,我经常在文件的开始使用include()来控制许多的函数:

  

  //得到函数库

  include(/home/me/myfunctions);

  // do PHP things with my functions ?>

  

  Something

  

  [a lot of content]

  

  

  下一个问题就该是“include和require文件在哪里?”,对这个问题简单的回答是,“系统中的任意地方。”如果你的代码中包含有带有用户名和口令的数据库连接,你肯定不会将它们都放在文档根目录中向所有的人都开放。

  included或required文件可以在系统上的任何地方,只要PHP运行的系统上的用户可以访问这些文件即可,你可以使这些文件具有任何后缀,或者不使用后缀。

  使用include()和require()对在网站中的元素进行具体化是一种普遍的现象,并在需要对网站升级时,给你带来很大的方便。

四、PHP和文件系统的维护
  PHP中有许多与文件系统有关的函数,这些函数不仅可以打开文件,还可以显示目录中的内容、移动文件和其他一些功能,许多人甚至用PHP开发基于互联网的文件资源管理器。

  关于文件路径的解释:在Windows中,可以在路径中使用/和符号,而在其他的操作系统中只能使用/符号。出于一致性的缘故,我们统一使用/符号。

  下面的脚本样例可以显示一个目录清单,注释已经包含在代码中:

   /*把要读取的目录的全路径名存入一个名字为$dir_name的变量中。 */

  $dir_name = "/home/me/";

  /* 创建一个句柄,其值是打开一个给定目录的结果*/

  $dir = opendir($dir_name);

  /* 建立一个文字块,用以放置列表元素(文件名字)*/

  $file_list = "
    ";

      /* 使用一个while语句,读取已经打开的目录中的所有元素,如果文件的名字不是“.”或“..”,则显示列表中的名字*/

      while ($file_name = readdir($dir)) {

      if (($file_name != ".") && ($file_name != "..")) {

      $file_list .= "
  • $file_name";

      }

      }

      $file_list .= "
";

  /*关闭打开的目录,结束PHP模块*/

  closedir($dir);

  ?>

  

  

  

  Directory Listing

  

  

  

  

Files in: echo "$dir_name"; ?>



  

   echo "$file_list"; ?>

  

  

  好了,我们已经得到了一个目录清单。需要注意的是,要读取一个文件(稍后我们将进行讲解)或目录的内容,PHP运行的系统上的用户必须至少有读取文件的权限。

  下面是一个如何拷贝文件的例子:

   /*把你要拷贝的原文件的全路径赋给一个名字为$original的变量中,把拷贝的文件的全路径赋予一个名字为$copied的变量中*/

  $original = "/home/me/mydatabasedump";

  $copied = "/archive/mydatabasedumo_1010";

  /* 使用copy()函数拷贝原始文件,如果拷贝没有完成则会显示一个错误信息*/

  @copy($original, $copied) or die("Couldnt copy file.");

  ?>

  这个例子是一个文件备份系统的原型。在这段脚本运行时,它把文件拷贝到一个不同的位置进行保存。稍微修改一下守护程序,就可以在一天中你指定的时刻执行它,而无需用户的干预。

  假定你在系统上安装了Lynx,可以创建一个守护程序的条目访问这个文件,访问这个文件会运行这个脚本并建立一个拷贝文件,下面的例子将在上午5点钟运行这个脚本,然后关闭Lynx:

  0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1

  如果运行的是CGI版本的PHP,可以跳过Lynx部分,而直接调用二进制文件:

  0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1

五、丰富的数组函数
  PHP 4.0中新添加了30个与组数有关的函数,其中一些常见的函数可以判断一个数组中是否包含某个元素,对一个数组中的元素进行计数,添加或删除数组中的元素或者对数组中的元素进行排序。

  如果有一个很大的数组,而你需要找出其中是否包含一个特定的元素,就可以使用in_array()。下面的例子将显示“Not found in this array”,因为在一个名字为$namesArray的数组中查找Albert,而在$namesArray数组中不存在这样一个元素。

   $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");

  $lookingFor = "Albert";

  if (in_array($lookingFor, $namesArray)) {

  echo "Youve found it!";

  } else {

  echo "Not found in this array!";

  }

  ?>

  如果把$lookingFor的值改为Mary,就会得到“Youve found it!”的信息,因为Mary是$namesArray数组中的一个元素。

  如果要对一个数组中的元素个数进行计数,只要简单地使用count()函数即可:

   $namesArray = array("Joe", "Jane", "Bob", "Mary", "Paul", "Eddie", "John");

  $count = count($namesArray); ?>

  返回的$count的值为7。

  可以在一个数组的开头或结尾处添加元素,还可以使用array_merge()来建立一个包含二个或更多数组中元素的新数组,合并时,元素的顺序会按指定的顺序排列,如果原来的数组是被排过序的,在合并后需要对它重新排序。

  我们可以首先利用array_push()在数组的结尾处添加一个元素:

   /* 建立一个数组 */

  $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

  /* 向数组中添加元素 */

  array_push($fruitArray, "grape", "pineapple", "tomato");

  /*显示每个元素及其序号*/

  while (list($key,$value) = each($fruitArray)) {

  echo "$key : $value
";

  }

  ?>

  运行上面的程序将得到下面的结果:

  0 : apple

  1 : orange

  2 : banana

  3 : kiwi

  4 : pear

  5 : grape

  6 : pineapple

  7 : tomato

  如果需要在数组的开头添加元素,其代码与上面的代码差不多,唯一的不同之处是需要用array_unshift()代替array_push()。

  

  /* 建立一个数组*/

  $fruitArray = array("apple", "orange", "banana", "kiwi", "pear");

  /* 向数组中添加元素*/

  array_unshift($fruitArray, "grape", "pineapple", "tomato");

  /* 显示每个元素及其序号*/

  while (list($key,$value) = each($fruitArray)) {

  echo "$key : $value
";

  }

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/532519.htmlTechArticle三、文件是我们的朋友 无论你在开发的网站规模的大小,都应该意识到代码重用的重要性,无论这些代码是HTML、还是PHP代码。例如,你必须...
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션에 어떤 데이터를 저장할 수 있습니까?PHP 세션에 어떤 데이터를 저장할 수 있습니까?May 02, 2025 am 12:17 AM

phpsessionscanstorestrings, 숫자, 배열 및 객체 1.Strings : TextDatalikeUsernames.2.numbers : integorfloatsforcounters.3.arrays : listslikeshoppingcarts.4.objects : complexStructuresThatareserialized.

PHP 세션을 어떻게 시작합니까?PHP 세션을 어떻게 시작합니까?May 02, 2025 am 12:16 AM

tostartAphPessession, us

세션 재생이란 무엇이며 보안을 어떻게 개선합니까?세션 재생이란 무엇이며 보안을 어떻게 개선합니까?May 02, 2025 am 12:15 AM

세션 재생은 세션 고정 공격의 경우 사용자가 민감한 작업을 수행 할 때 새 세션 ID를 생성하고 이전 ID를 무효화하는 것을 말합니다. 구현 단계에는 다음이 포함됩니다. 1. 민감한 작업 감지, 2. 새 세션 ID 생성, 3. 오래된 세션 ID 파괴, 4. 사용자 측 세션 정보 업데이트.

PHP 세션을 사용할 때 몇 가지 성능 고려 사항은 무엇입니까?PHP 세션을 사용할 때 몇 가지 성능 고려 사항은 무엇입니까?May 02, 2025 am 12:11 AM

PHP 세션은 응용 프로그램 성능에 큰 영향을 미칩니다. 최적화 방법은 다음과 같습니다. 1. 데이터베이스를 사용하여 세션 데이터를 저장하여 응답 속도를 향상시킵니다. 2. 세션 데이터 사용을 줄이고 필요한 정보 만 저장하십시오. 3. 비 차단 세션 프로세서를 사용하여 동시성 기능을 향상시킵니다. 4. 사용자 경험과 서버 부담의 균형을 맞추기 위해 세션 만료 시간을 조정하십시오. 5. 영구 세션을 사용하여 데이터 읽기 및 쓰기 시간의 수를 줄입니다.

PHP 세션은 쿠키와 어떻게 다릅니 까?PHP 세션은 쿠키와 어떻게 다릅니 까?May 02, 2025 am 12:03 AM

phpsessionsareser-side, whilecookiesareclient-side.1) sessions stessoredataontheserver, andhandlargerdata.2) cookiesstoredataonthecure, andlimitedinsize.usesessionsforsensitivestataondcookiesfornon-sensistive, client-sensation.

PHP는 사용자 세션을 어떻게 식별합니까?PHP는 사용자 세션을 어떻게 식별합니까?May 01, 2025 am 12:23 AM

phpidifiesauser의 sssessionusessessioncookiesandssessionids.1) whensession_start () iscalled, phpgeneratesauniquessessionStoredInacookienamedPhpsSessIdonSeuser 'sbrowser.2) thisidallowsphptoretrievessessionDataTromServer.

PHP 세션을 확보하기위한 모범 사례는 무엇입니까?PHP 세션을 확보하기위한 모범 사례는 무엇입니까?May 01, 2025 am 12:22 AM

PHP 세션의 보안은 다음 측정을 통해 달성 할 수 있습니다. 1. Session_REGENEREAT_ID ()를 사용하여 사용자가 로그인하거나 중요한 작업 일 때 세션 ID를 재생합니다. 2. HTTPS 프로토콜을 통해 전송 세션 ID를 암호화합니다. 3. 세션 _save_path ()를 사용하여 세션 데이터를 저장하고 권한을 올바르게 설정할 보안 디렉토리를 지정하십시오.

PHP 세션 파일은 기본적으로 어디에 저장됩니까?PHP 세션 파일은 기본적으로 어디에 저장됩니까?May 01, 2025 am 12:15 AM

phpsessionfilesarestoredInTheRectorySpecifiedBysession.save_path, 일반적으로/tmponunix-likesystemsorc : \ windows \ temponwindows.tocustomizethis : 1) austession_save_path () toSetacustomDirectory, verlyTeCustory-swritation;

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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기