由于现在的浏览器已经可以识别格式为txt的文档格式,所以如果只是给txt文档做一个文字链接的话,可能只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的。We have to dosomething else. 当然这个问题的解决办法也可以是你将你的txt文件改名为浏览器不认识的文件,比如rar,这样的话点击,浏览器不认识就只好让用户下载了。 下面这个文件就是通过设置header设置文档的格式来实现点击下载的目的,将上个页面传递过来的文件点击可以下载。 <?php $filename = "/somepath/".$_GET['file'].".txt"; //要下载的文件名 header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=".basename($filename)); readfile($filename); ?> 首先:设置Content-Type的值为application/force-download,强制下载 接着第二个header函数设置了要下载的文件,注意这里filename是不包含路径的文件名,所以用basename过滤掉路径名。这个filename的值将来就是点击下载后弹出对话框里面的文件名. 最后就是readfile,将文件流输出到浏览器,这样就实现了txt文件的下载,其他类型的类似。
PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险,在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。【 安全模式 】
本文介绍的脚本易于理解、使用简单并可以快速掌握。简单的掷骰器许多游戏和游戏系统都需要骰子。让我们先从简单的部分入手:掷一个六面骰子。实际上,滚动一个六面骰子就是从 1 到 6 之间选择一个随机数字。在 PHP 中,这十分简单:echo rand(1,6);。在许多情况下,这基本上很简单。但是在处理机率游戏时,我们需要一些更好的实现。PHP 提供了更好的随机数字生成器:mt_rand()。在不深入研究两者差别的情况下,可以认为 mt_rand 是一个更快、更好的随机数字生成器:echo mt_rand(1,6);。如果把该随机数字生成器放入函数中,则效果会更好。清单 1. 使用 mt_rand() 随机数字生成器函数 function roll () { returnmt_rand(1,6); } echo roll();
下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。图表库下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。
由于工作需要,需要使用PHP实现对网站内大量数量进行全文检索,而且目前最流行的全文检索的搜索引擎库就是Lucene了,它是Apache Jakarta的一个子项目,并且提供了简单实用的API,用这些API,就可以对任何基本文本的数据(包括数据库)进行全文检索。 因为PHP本身就支持调用外部Java类,所以先用Java写了一个类,这个类通过调用Lucene的API,实现了两个方法: * publicStringcreateIndex(StringindexDir_path,StringdataDir_path) * publicStringsearchword(Stringss,Stringindex_path)
很多互联网应用程序都提供了全文搜索功能,用户可以使用一个词或者词语片断作为查询项目来定位匹配的记录。在后台,这些程序使用在一个SELECT查询中的LIKE语句来执行这种查询,尽管这种方法可行,但对于全文查找而言,这是一种效率极端低下的方法,尤其在处理大量数据的时候。 MySQL针对这一问题提供了一种基于内建的全文查找方式的解决方案。在此,开发者只需要简单地标记出需要全文查找的字段,然后使用特殊的MySQL方法在那些字段运行搜索,这不仅仅提高了性能和效率(因为MySQL对这些字段做了索引来优化搜索),而且实现了更高质量的搜索,因为MySQL使用自然语言来智能地对结果评级,以去掉不相关的项目。
真是好东西,但我还没研究出来,如果要看这个程序的详细说明和演示,请到这个地方看,真的很爽: http://steven.haryan.to/php/KwIndex.html 注意,只能在linux,unix下用。<?php $debug = 0; if($debug) require "Dumper.lib"; //这个全文检索需要的库文件,你有吗? function _debug() { global $debug; $args = func_get_args(); if(!$debug) return; echo "<pre>debu
PHP 应用程序中的安全性包括远程安全性和本地安全性。本文将揭示 PHP 开发人员在实现具有这两种安全性的 Web 应用程序时应该养成的习惯。在提及安全性问题时,需要注意,除了实际的平台和操作系统安全性问题之外,您还需要确保编写安全的应用程序。在编写 PHP 应用程序时,请应用下面的七个习惯以确保应用程序具有最好的安全性:验证输入
介绍标准化的重要**标准化不是特殊的个人风格,它对本地改良是完全开放的。 优点当一个项目尝试着遵守公用的标准时,会有以下好处:· 程序员可以了解任何代码,弄清程序的状况· 新人可以很快的适应环境· 防止新接触php的人出于节省时间的需要,自创一套风格并养成终生的习惯· 防止新接触php的人一次次的犯同样的错误· 在一致的环境下,人们可以减少犯错的机会· 程序员们有了一致的敌人缺点· 因为标准由一些不懂得php的人所制定,所以标准通常看上去很傻· 因为标准跟我做的不一样,所以标准通常看上去很傻· 标准降低了创造力· 标准在长期互相合作的人群中是没有必要的· 标准强迫太多的格式讨论老实说,对一个细节标准的大部分争论主要是源自自负思想。对一个合理的标准的很少决定能被说为是缺乏技术**的话,那只是口味的原因罢了。所以,要灵活的控制自负思想,记住,任何项目都取决于团队合作的努力。 解释标准实施无论在什么情况下,只要最后顺利的话,人们将成熟的明白到这个标准是合理的,然后其他的程序员们也会发现它的合理**,并觉得带着一些保留去遵循这一标准是值得的。如果没有自愿的合作,可以制定需求:标准一定要经过代码的检验。如果没有检验的话,这个解决方案仅仅是一个建立在不精确的基础上的一大群可笑的人。 认同观点这行不通;也许可行吧,但是它既不实用又无聊;这是真的,而且我也告诉过你啊;这个是我先想到的;本来就应该这样。如果您带着否定的成见而来看待事物的话,请您保持开放的思想。你仍可以做出它是废话的结论,但是做出结论的方法就是你必须要能够接受不同的思想。请您给自己一点时间去做到它。项目的四个阶段数据库结构设计数据层HTML层命名规则
php中print_r、var_dump和var_export几个函数的用法区别:在php中用于调试的有很多方法如:print、echo用来打印普通的变量内容,下面介绍一下print_r、var_dump、var_export几个函数的用法区别,他们都是用来打印数组对象。1、print_r ( $array/$var )print 是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量。print_r ($_REQUEST) ;print_r ($_GET) ; /* 打印使用GET方法传递的表单内容*/print_r($_POST) ; /* 打印使用表单POST方法传递过的数组内容*/2、 var_dump ($object/$array/$var)var 代表变量(Variable),变量包括对象、数组以及标量变量,dump有倒出之意,加在一块,就是将变量或对象的内容全部输出出来。var_dump($DB) ; /*打印$DB数据库连接对象的内容*/var_dump($fileHandle) ; /*打印文件句柄对象的内容*/var_dump($Smarty) ; /*打印Smarty模板对象*/3、 var_export($object/$array/$var)输出或返回一个变量的字符表示。此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码。可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示。看下面代码:<?php $a =