知识大全 PHP学习的经验和技巧(七)
Posted 文件
篇首语:知识的价值不在于占有,而在于使用。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PHP学习的经验和技巧(七)相关的知识,希望对你有一定的参考价值。
PHP学习的经验和技巧(七) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
七 基于PHP的用户认证
如果希望在每一段脚本上都进行口令保护 可以结合使用header()语句 $PHP_AUTH_USER和$PHP_AUTH_PW来建立基本的认证方案 通常的基于服务器的提问/响应顺序都如下所示
用户从服务器上请求一个文件 如果这个文件在服务器上是被保护的 则在响应的头部向用户返回一个 (示经授权的用户)字符串
浏览器收到这个响应后 弹出要求用户输入用户名/口令的对话框
用户在对话框中输入一个用户名和口令 点击OK按钮将信息返回服务器供认证使用
如果用户名和口令有效 被保护的文件将向用户开放 只要用户还在使用文件 认证会一直有效
一段简单的PHP脚本文件通过向用户发送一个适当的能够引起自动显示用户名/口令对话框的HTTP头部就可以模仿HTTP的提问/响应系统 PHP把用户在用户名/口令对话框中输入的信息存储在$PHP_AUTH_USER和$PHP_AUTH_PW中 使用这二个变量 就可以与存储在文本文件 数据库等文件中的用户名/口令进行比较
这个例子采用了二个硬编码的值进行认证 但无论用户名和口令放在什么地方 其原理都是相同的
<? /* 检查$PHP_AUTH_USER和$PHP_AUTH_PW中的值*/ if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) /* 如果没有值 则发送一个能够引发对话框出现的头部*/ header( WWW Authenticate: Basic realm= My Private Stuff ); header( HTTP/ Unauthorized ); echo Authorization Required ; exit; else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))) /* 变量中有值 检查它们是否正确*/ if (($PHP_AUTH_USER != validname ) || ($PHP_AUTH_PW != goodpassword )) /* 如果输入的用户名和口令中有一个不正确 则发送一个能够引发对话框出现的头部 */ header( WWW Authenticate: Basic realm= My Private Stuff ); header( HTTP/ Unauthorized ); echo Authorization Required ; exit; else if (($PHP_AUTH_USER == validname ) || ($PHP_AUTH_PW == goodpassword )) /* 如果二个值都正确 显示成功的信息 */ echo <P>You re authorized!</p> ; ?>
需要注意的是 如果你使用的是基于文件的保护机制 它并不能保证目录中所有的文件的安全 它可能保护大部分的文件 如果你认为它能够保护给定目录中的所有文件 你的这种认识就需要变变了
八 PHP和
如果你喜欢冒险 并且在Windows上运行CGI ISAPI或Apache模块版本的PHP 就可以访问的函数 好了 详细解释的工作就交给微软和许多大部头的书了 为了能简单地了解一下的功能 下面是一小段常见的脚本
这一段PHP脚本在后端启动微软的字处理Word 打开一个新的文档 输入一些文字 保存文档 并关闭Word
<? // 建立一个指向新组件的索引 $word = new ( word application ) or die( Can t start Word! ); // 显示目前正在使用的Word的版本号 echo Loading Word v $word >Version<br> ; // 把它的可见性设置为 (假) 如果要使它在最前端打开 使用 (真) // to open the application in the forefront use (true) $word >Visible = ; // 在Word中创建新的文档 $word >Documents >Add(); // 在新文档中添加文字 $word >Selection >TypeText( Testing ); //把文档保存在Windows临时目录中 $word >Documents[ ] >SaveAs( /Windows/temp/test doc ); // 关闭与组件之间的连接 $word >Quit(); // 在屏幕上显示其他信息 echo Check for the file ; ?>
如果你有一个intranet网站 数据存储在SQL Server中 用户需要这些数据的Excel格式 则可以让PHP运行必要的SQL查询并对输出进行格式化 然后利用打开Excel 把数据转化为Excel格式的数据 然后把数据保存在用户的台式机上
九 PHP和Java
PHP另一个有趣的功能是它可以调用现有的Java 对象中的方法 使得你可以在基于Java的应用中集成PHP 如果要在工作中推广PHP的应用 这一功能就非常有用了 你得到的结果是 这里的一切都是基于Java的
要利用这一功能 你的服务器上必须安装有JVM(Java虚拟机器) 如果安装的是由Sun Kaffe IBM或Blackdown的JDK 就已经安装有了JVM
在配置PHP时 需要在配置文件中添加with java小节 然后修改php ini文件中的一部分 对php ini文件的修改主要是需要添加下面的内容
[Java]
java library path=/path/to/library
java class path=/classpath/
extension_dir=/path/to/extensions
extension=libphp_java so
需要注意的是 所作的修改与你的安装类型有关 你需要阅读PHP安装目录下ext/java目录中README文件 学习如何配置Java功能
下面是一段如何创建一个新的Java对象的PHP脚本的例子 这段脚本将访问并在显示器是显示一些Java属性 它与的例子同样有趣 应该会给我们一些启发
<? $system = new Java( java lang System ); echo <P>Java version = $system >getProperty( java version ) <br> ; echo Java vendor = $system >getProperty( java vendor ) </p> ; ?>
如果你有Java知识 将会对开发工作带来很大的帮助 这种集成的能力是未来PHP被接受和增长的关健
十 PHP和XML
PHP中包含有一个可选的支持Expat解析的XML扩展 利用PHP中与XML相关的函数 可以创建一个分析程序来处理有效的XML文档 如果你使用的是 版或版本更高的Apache软件 就不需要再安装额外的库文件了 你所需要作的就只是配置PHP中的with xml
cha138/Article/program/PHP/201311/21351相关参考
PHP学习的经验和技巧(二) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 二使用PHP本身的对
PHP学习的经验和技巧(五) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 五丰富的数组函数
PHP学习的经验和技巧(六) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 六动态图像的创建
PHP学习的经验和技巧(三) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 三文件是我们的朋友
PHP学习的经验和技巧(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 全球超过万个互联网网
如何学习PHP之经验谈[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! >>自己
如何学习PHP之经验谈[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! >>总述
知识大全 我女儿七岁,上小学一年级。想买个学习平板电脑。有经验的家长能否给个见意,买哪种好
我女儿七岁,上小学一年级。想买个学习平板电脑。有经验的家长能否给个见意,买哪种好?作为一个家长我和理解你的对孩子学业关切的行为,但是我不建议你买任何所谓的学习平板,我小孩买了个读书郎的,一开始还认认真
正则表达式在PHP中的应用在PHP应用中正则表达式主要用于•正则匹配根据正则表达式匹配相应的内容•正则替换根据正则表达式匹配内容并替换•正则分割根据正则表达式分割字符串在PHP中有两类正则表达式函
入门教程:学习使用PHP数组 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! PHP中共有超过个新