首页 后端开发 php教程 PHP的十个高级技巧_PHP

PHP的十个高级技巧_PHP

Jun 01, 2016 pm 12:39 PM
apache php 变量 安装 对话 技巧 高级

全球超过300万个互联网网站的管理员都在使用PHP,使得它成为最为普及的服务器端脚本语言之一。其特点是运行速度快、稳定可靠、跨平台,而且是开放源代码软件。随你使用的水平不同,PHP可以很简单,也可以很复杂,可以只使用它发送HTML表格元素,还可以在PHP应用程序中集成Java和XML。

  如果你对PHP有一定的了解或者看过一些初步的教材,这些技巧可以扩展你对PHP的认识,使你掌握一些常见的和高级的PHP功能。

一、把PHP安装为Apache的DSO
  PHP在Linux/Unix平台上经常与Apache搭配使用,在安装PHP时,有三种安装方式可供选择:静态模式、动态模式(DSO)、CGI二进制模式。

  由于易于维护和升级,我强烈建议以DSO方式安装PHP。例如,初次安装时如果安装的PHP仅支持数据库,随后希望再安装支持加密的模块,只要运行“make clean”,添加新的配置选项,然后再运行“make”和“make install”即可,一个新的PHP模块就会安装在Apache中适当的位置上,然后重新启动Apache,而无需重新编译Apache。

  下面的步骤将安装一个全新的Apache,并以DSO方式安装PHP:

  1、从Apache软件基金会得到最新版本的Apache源代码;

  2、把得到的源代码放到/usr/local/或者/opt/目录下,或者你指定的任意目录中;

  3、运行Gunzip对文件进行解压缩,得到后缀为.tar的文件;

  4、运行下面的命令,把文件安装到apache_[version]目录中:

   tar -xvf apache_[version].tar

  5、进入/usr/local/apache_[version]目录(或者在步骤4中安装压缩文件的目录);

  6、键入下面的命令为编译Apache作准备,用你自己的路径替换其中的[path],例如,/usr/local/apache[version],现在已经设置了mod_so的新值,它将允许Apache使用DSO模块;

  7、回到提示符状态后键入make,并等待再次回到提示符状态;

  8、执行“make install”命令。

  至此,Apache已经安装完毕,系统将重回到提示符状态。接下来我们开始安装PHP:

  1、在PHP主页的下载区中找到最新版本的链接;

  2、把文件下载到一个适当的目录中,例如/usr/local/或/opt/或者你指定的任意目录中;

  3、运行Gunzip对文件进行解压缩,得到后缀为.tar的文件;

  4、执行下面的命令把文件安装在php-[version]目录中:

   tar -xvf php-[version]

  5、进入/usr/local/php-[version]目录或在步骤4中指定的目录;

  至此,已经作好了以DSO方式安装PHP的准备工作,唯一需要修改的配置选项是with-apxs(这是Apache的bin目录中的一个文件)。为了得到较高的性能,我没有安装对MySQL的支持模块。

  ./configure --with-mysql=/[path to mysql] --with-apxs=/[path to apxs]

  6、回到提示符状态后执行make命令,等待重新返回到提示符状态;

  7、执行make install命令。

  至此,系统以DSO方式在Apache的模块目录中安装了PHP,并对Apache的httpd.conf文件作适当的修改后返回到提示符状态。回到提示符状态后,你还需要对Apache的httpd.conf文件作一些修改。

  1、找到包含有ServerAdmin的一行,添加你的电子邮件地址,如下所示:

   ServerAdmin you@yourdomain.com

  2、找到以ServerName开头的行,把它改为真正的值,例如:

   ServerName localhost

  3、找到内容如下所示的小节:

  # And for PHP 4.x, use:

  #

  #AddType application/x-httpd-php .php

  #AddType application/x-httpd-php-source .phps

  修改这些行的内容,使PHP 4.0的AddType不再成为注释,并添加希望在PHP中使用的文件后缀名,上面的内容变为如下所示的内容:

  # And for PHP 4.x, use:

  #

  AddType application/x-httpd-php .php .phtml

  AddType application/x-httpd-php-source .phps

  保存文件,回到上一级目录,执行下面的命令重新启动Apache:

  ./bin/apachectl start

  如果在启动时没有出现错误提示信息,就可以通过创建一个名为phpinfo.php的只有如下所示一行内容的文件,对安装的Apache、PHP进行测试:

   phpinfo() ?>

  把这个文件保存到Apache的文档根目录(htdocs)中,然后开启浏览器,键入http://localhost/phpinfo.php地址,屏幕上就会出现许多的变量和它们的值。

  如果要重新配置PHP,需要再次运行make clean命令,然后执行带有一系列选项的./configure命令,然后再执行make和make install命令,Apache的目录模块中就会出现一个新的模块,只要再重新启动Apache加载这个新的模块,就一切OK了。

二、使用PHP本身的对话
  PHP 4.0中最令人期待的特性应该是对对话的支持,PHP 3.0的用户必须使用第三方的软件否则就不能使用对话,不支持对话一直是PHP最大的缺憾之一。

  只要用户在浏览你的网站,你就可以利用对话维护与特定用户有关的变量,而无需建立多个cookie、使用隐藏表格字段或将信息存储在数据库中。

  在一个网页上启动一个对话,就会使PHP引擎知道你想启动一个对话(如果还没有启动)或者继续当前的对话:

session_start();

  启动一个对话将通过cookie向用户发送一个识别字符串(例如940f8b05a40d5119c030c9c7745aead9),在服务器端,会创建一个与识别字符串匹配的临时文件,例如sess_940f8b05a40d5119c030c9c7745aead9,这个文件中包含注册的对话变量以及它们的值。

  用来显示对话的作用的最常见的例子是访问计数器。启动PHP模块,确保PHP代码是文件的第一行,在PHP代码之前不要有空格、HTML代码和其他的代码。因为对话会发送一个头部,因此如果在session_start()之前有空格和HTML代码,就会得到一个出错信息。

  

  // 如果还不存在一个针对某用户的用户,则启动一个对话:

  session_start();

  然后注册一个名字为count的变量:

  session_register('count');

  注册一个对话变量后,只要对话存在,名字为count的变量也就存在。现在,count变量还没有被赋值,如果对它执行加1操作,它的值就变为了1。

  $count++;

  把上述内容综合在一块儿,如果还没有启动一个对话,就会启动一个对话;如果不存在一个对话id,就为用户指定一个好了,注册一个名字为$count的变量,对$count执行加1操作表示用户已经首次访问了该网页。

  要知道用户在当前的对话中访问本页面的次数,只要显示$count变量的值即可:

  echo "

You've been here $count times.

";

  全部的访问计数器代码如下所示:

  

  session_start();

  session_register('count');

  $count++;

  echo "

You've been here $count times.

";

  ?>

  如果重新加载上述的脚本文件,就会发现变量count的值增加了1,很酷吧。

  还可以在对话中注册一个数组变量,假设我们注册了一个名字为$faves的变量:

  $faves = array ('chocolate','coffee','beer','linux');

  可以象注册一个简单变量那样注册一个数组变量:

  session_register('faves');

  引用数组变量与引用简单变量没有什么二样,如果一个用户在网页上指出在生活中的爱好时,可以把他的爱好注册到一个被称作$faves的数组变量中,然后可以在另一个网页中很方便地把这些爱好显示出来:

  

  session_start();

  echo "My user likes:

  
    ";

      while (list(,$v) = each ($faves)) {

      echo "
  • $v"; }

      echo "
";

  ?>

  然后你就得到了一个关于用户爱好的清单。

  对话变量不能被查询字符串覆盖,也就是说我们不能输入http:///www.yourdomain.com/yourscript.php?count=56给注册变量$count指定一个新值,这一点对于安全很重要:只能在服务器端的脚本中删除一个没有注册的对话变量。

  如果要完全删除一个对话变量,首先需要从系统中注销它:

  session_unregister('count');

  要完全删除一个对话变量的脚本是非常简单,如下所示:

  session_destroy();

  使用对话变量可以减少访问数据库的频率,使代码更加清晰,而且可以减少对用户发送的cookie的数量,它是最简单的方法了。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1674
14
CakePHP 教程
1429
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
继续使用PHP:耐力的原因 继续使用PHP:耐力的原因 Apr 19, 2025 am 12:23 AM

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

如果session_start()被多次调用会发生什么? 如果session_start()被多次调用会发生什么? Apr 25, 2025 am 12:06 AM

多次调用session_start()会导致警告信息和可能的数据覆盖。1)PHP会发出警告,提示session已启动。2)可能导致session数据意外覆盖。3)使用session_status()检查session状态,避免重复调用。

IIS和PHP的兼容性:深度潜水 IIS和PHP的兼容性:深度潜水 Apr 22, 2025 am 12:01 AM

IIS和PHP可以兼容,通过FastCGI实现。1.IIS通过配置文件将.php文件请求转发给FastCGI模块。2.FastCGI模块启动PHP进程处理请求,提高性能和稳定性。3.实际应用中需注意配置细节、错误调试和性能优化。

nginx和apache:了解关键差异 nginx和apache:了解关键差异 Apr 26, 2025 am 12:01 AM

NGINX和Apache各有优劣,选择应基于具体需求。1.NGINX适合高并发场景,因其异步非阻塞架构。2.Apache适用于需要复杂配置的低并发场景,因其模块化设计。

作曲家:通过AI的帮助开发PHP 作曲家:通过AI的帮助开发PHP Apr 29, 2025 am 12:27 AM

AI可以帮助优化Composer的使用,具体方法包括:1.依赖管理优化:AI分析依赖关系,建议最佳版本组合,减少冲突。2.自动化代码生成:AI生成符合最佳实践的composer.json文件。3.代码质量提升:AI检测潜在问题,提供优化建议,提高代码质量。这些方法通过机器学习和自然语言处理技术实现,帮助开发者提高效率和代码质量。

session_start()函数的意义是什么? session_start()函数的意义是什么? May 03, 2025 am 12:18 AM

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

超越炒作:评估阿帕奇的当前角色 超越炒作:评估阿帕奇的当前角色 Apr 21, 2025 am 12:14 AM

Apache在当今技术生态中依然重要。1)在Web服务和大数据处理领域,ApacheHTTPServer、Kafka和Hadoop仍是首选。2)未来需关注云原生化、性能优化和生态系统简化,以保持竞争力。

Apache在行动中:Web服务器和Web应用程序 Apache在行动中:Web服务器和Web应用程序 Apr 28, 2025 am 12:21 AM

ApacheHTTPServer的主要功能包括模块化设计、虚拟主机配置和性能优化。1.模块化设计通过加载不同模块实现功能,如SSL加密和URL重写。2.虚拟主机配置允许在一个服务器上运行多个网站。3.性能优化通过调整参数如ServerLimit和KeepAlive提升性能。

See all articles