立即登录 注册新帐号

http://www.chutianz.com - 楚天站长站

会员投稿 匿名投稿 投稿指南 RSS订阅 楚天站长站推荐:
搜索: 您的位置主页 > 网络编程 > Php编程 > 阅读资讯:PHP的其他功效和作用

PHP的其他功效和作用

2011-10-08 16:53:52 来源:楚天站长站 【 】 点击:我要投稿 发表评论

5. 其他杂项
5.1 天生图像

PHP可以把持处理图像。假如你已经安装了GD库,你甚至可以利用PHP天生图像。
<?
Header('Content-type: image/gif');
$string=implode($argv,' ');
$im = imagecreatefromgif('images/button1.gif');
$orange = ImageColorAllocate($im, 220, 210, 60);
$px = (imagesx($im)-7.5*strlen($string))/2;
ImageString($im,3,$px,9,$string,$orange);
ImageGif($im);
ImageDestroy($im);
?>
(译者注:以上代码段缺乏注释,请读者参考PHP Manual的图像处理函数部分)
这段代码在其他页面中通过以下标记<img src='button.php3?text'>调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中应用图像按钮,但是又不盼看在每次按钮上的文字转变后不得不重新天生新的图像,就可以利用这样简略的方法动态天生图像文件。

5.2 Cookies

PHP支撑基于HTTP的cookies。在需要时你可以像应用一般变量一样方便的应用cookie。Cookies是浏览器保留于客户真个一些信息片段,由此你可以知道是否一台特定PC上的任何人都拜访过你的站点,浏览者者在你的站点上的踪影等等。应用cookies的典典范子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必需在任何实际内容杯输出到浏览器之前调用。以下是一个简略例子:
<?
if (empty($VisitedBefore))
{
// 假如没有设定cookie,为cookie赋上当前时间值
// 函数中的最后一个参数声明了该cookie保留的时间
// 在这个例子中是1年
// time()函数返回自1970年1月1日以来的以秒数计的时间
SetCookie('VisitedBefore',time(), time() (60*60*24*365));
}
else
{
// 欢迎浏览者再次光临
echo 'Hello there, welcome back<BR>';
// 读取cookie并判定
if ( (time() - $VisitedBefore) >= '(60*60*24*7)' )
echo 'Why did you take a week to come back. You should be here more often!? ';
}
?>

5.3 基于HTTP验证

基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以应用函数header()发送HTTP标头强迫验证,客户端浏览器则弹出供输进用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以应用这两个变量验证正当并答应进进。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录:
<?
if(!isset($PHP_AUTH_USER))
{
Header('WWW-Authenticate: Basic realm=\'My Realm\'');
Header('HTTP/1.0 401 Unauthorized');
echo 'Text to send if user hits Cancel button\n';
exit;
}
else
{
if ( !($PHP_AUTH_USER=='tnc' && $PHP_AUTH_PW=='nature') )
{
// 假如是错误的用户名称/密码对,强迫再验证Header('WWW-Authenticate: Basic realm=\'My Realm\'');
Header('HTTP/1.0 401 Unauthorized');
echo 'ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid.';
exit;
}
else
{
echo 'Welcome tnc!';
}
?>
事实上再实际引用中不大可能如上面应用代码段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。

5.4 文件上传

你可以利用PHP实现文件的功效,留心客户真个浏览器应当是Netscape3以上或者IE3以上。以下就是该功效的简略演示:
( upload.html ):
<HTML>
<HEAD>
<TITLE>Upload Your File</TITLE>
</HEAD>
<BODY>
<FORM ACTION='receiver.php3'
ENCTYPE='multipart/form-data' METHOD=POST>
<INPUT TYPE='HIDDEN'
NAME='MAX_FILE_SIZE' VALUE='2000000'>
<INPUT TYPE='FILE'
NAME='uploadfile' SIZE='24' MAXLENGTH='80'>
<BR><BR>
<INPUT TYPE='SUBMIT' VALUE='Upload File!'
NAME='sendit'>
<INPUT TYPE='SUBMIT' VALUE='Cancel'
NAME='cancelit'><BR>
</FORM>
<I><FONT SIZE='2'>(You may notice a slight
delay while we upload your file.)</FONT></I>
</BODY>
</HTML>

下面是处理上传的文件:
( receiver.php3 ):
<?
function do_upload ()
{
global $uploadfile, $uploadfile_size;
global $local_file, $error_msg;
if ( $uploadfile == 'none' )
{
$error_msg = 'You did not specify a file for uploading.';
return;
}
if ( $uploadfile_size > 2000000 )
{
$error_msg = 'Sorry, your file is too large.';
return;
}
$the_time = time ();
// 你需要对以下目录有写权限
$upload_dir = '/local/uploads';
$local_file = '$upload_dir/$the_time';
if ( file_exists ( '$local_file' ) )
{
$seq = 1;
while ( file_exists ( '$upload_dir/$the_time$seq' ) ) { $seq ; }
$local_file = '$upload_dir/$the_time$seq';
};
rename ( $uploadfile, $local_file );
display_page ();
}
function display_page ()
{
// 这里是你的页面内容
}
<HTML>
<HEAD>
<TITLE>php3 Receiving Script</TITLE>

感谢 靓哥 的投稿 本文仅代表作者观点,与楚天站长站立场无关。

分享到:

共3页: 上一页123下一页

数据统计中!!

tags:作用,功效,其他,PHP,

 责任编辑:靓哥
  • 相关文章列表                                                                                     收藏 - 挑错 - 推荐 - 打印
    评论总数: [ 查看全部 ] 网友评论