5.PHP的其他功能

时间:2021-05-28


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);

?>

(译者注:以上代码段缺少注释,请读者参考PHPManual的图像处理函数部分)

这段代码在其他页面中通过以下标记<imgsrc="button.php3?text">调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。



5.2Cookies



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"Hellothere,welcomeback<BR>";

//读取cookie并判断

if((time()-$VisitedBefore)>="(60*60*24*7)")

echo"Whydidyoutakeaweektocomeback.Youshouldbeheremoreoften!?
";

}

?>



5.3基于HTTP验证



基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以使用函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录:

<?

if(!isset($PHP_AUTH_USER))

{

Header("mon.inc");

$title="Gallery";

include("include/header.inc");

?>

<P>

Herearesomeofourfamilyphotos.ThisPHPscriptcanreally

bemadebetter,bysplittingintomultiplepages.

</P>

<?

$d=dir("photos");

while($entry=$d->read())

{

if(is_file("photos/$entry"))

echo"<IMGSRC=\"photos/$entry\">\n";

}

$d->close();

?>

<?

include("include/footer.inc");

?>



另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章