PHP经过长时间的发展,很多用户都很了解PHP了,这里我发表一下个人理解,和大家讨论讨论。PHP是一种用于创建动态WEB页面的服务端脚本语言。如同ASP 和ColdFusion,用户可以混合使用PHP和HTML编写WEB页面,当访问者浏览到该页面时,服务端会首先对页面中的PHP命令进行处理,然后把处理后的结果连同HTML内容一起传送到访问端的浏览器。
用户可以直接在WEB页面中输入PHP命令代码,因而不需要任何特殊的开发环境。在WEB页面中,所有PHP代码都被放置在“”中。此外,用户还可以选择使用诸如 等的形式。PHP引擎会自动识别并处理页面中所有位于PHP定界符之间的代码。
PHP脚本语言的语法结构与C语言和Perl语言的语法风格非常相似。用户在使用变量前不需要对变量进行声明。使用PHP创建数组的过程也非常简单。PHP还具有基本的面向对象组件功能,可以极大的方便用户有效组织和封装自己编写的代码。这里给大家介绍一下关于PHP上传的问题。
例子1. 使文件PHP上传生效
请查阅函数 is_uploaded_file() 和 move_uploaded_file() 以获取进一步的信息。以下范例处理由表单提供的文件上传。
<ol class="dp-xml"> <li class="alt"><span><span class="tag"></span><span class="tag-name">php</span><span> </span></span></li> <li class=""><span>// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead </span></li> <li class="alt"><span>// of $_FILES. </span></li> <li class=""><span> </span></li> <li class="alt"> <span>$</span><span class="attribute">uploaddir</span><span> = </span><span class="attribute-value">'/var/www/uploads/'</span><span>; </span> </li> <li class=""> <span>$</span><span class="attribute">uploadfile</span><span> = $uploaddir . basename($_FILES['userfile']['name']); </span> </li> <li class="alt"><span> </span></li> <li class=""> <span>echo '</span><span class="tag"><span class="tag-name">pre</span><span class="tag">></span><span>'; </span></span> </li> <li class="alt"><span>if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { </span></li> <li class=""><span> echo "File is valid, and was successfully uploaded.n"; </span></li> <li class="alt"><span>} else { </span></li> <li class=""><span> echo "Possible file upload attack!n"; </span></li> <li class="alt"><span>} </span></li> <li class=""><span> </span></li> <li class="alt"><span>echo 'Here is some more debugging info:'; </span></li> <li class=""><span>print_r($_FILES); </span></li> <li class="alt"><span> </span></li> <li class=""> <span>print "</span><span class="tag"></span><span class="tag-name">pre</span><span class="tag">></span><span>"; </span> </li> <li class="alt"><span> </span></li> <li class=""> <span></span><span class="tag">?></span><span> </span> </li> </ol>
接受PHP上传文件的脚本为了决定接下来要对该文件进行哪些操作,应该实现任何逻辑上必要的检查。例如可以用 $_FILES['userfile']['size'] 变量来排除过大或过小的文件,也可以通过 $_FILES['userfile']['type'] 变量来排除文件类型和某种标准不相符合的文件,但只把这个当作一系列检查中的第一步,因为此值完全由客户端控制而在 PHP 端并不检查。自 PHP 4.2.0 起,还可以通过 $_FILES['userfile']['error'] 变量来根据不同的错误代码来计划下一步如何处理。不管怎样,要么将该文件从临时目录中删除,要么将其移动到其它的地方。
如果表单中没有选择上传的文件,则 PHP 变量 $_FILES['userfile']['size'] 的值将为 0,$_FILES['userfile']['tmp_name'] 将为空。如果该文件没有被移动到其它地方也没有被改名,则该文件将在表单请求结束时被删除。