说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

技术杂项PHP教程结束篇 -PHP初学入门教程13

HTML文档下载 WORD文档下载 PDF文档下载
图像生成、cookie操作等内容。

 

13.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--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。
13.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!? "; } ?>
13.3 常用函数
我们简单来看看一些常用的函数。
数组
array - 生成数组 
count - 数组元素个数 
sort - 数组排序,另有其他几种排序函数可供使用 
list - 列出数组元素 
each - 返回下一个key/value对 
current - 返回当前数组元素 
next,prev - 传回当前数组元素前后指针 
日期和时间
checkdate - 验证日期/时间格式 
date - 生成日期/时间格式 
time - 当前时间信息 
strftime - 格式化日期/时间 
目录、文件系统
chdir - 改变目录 
dir - 目录类别 
opendir, readdir, closedir - 开启、读取、关闭目录 
fopen, fclose - 开启、关闭文件 
fgets, fgetss - 逐行读取内容 
file - 将整个文件读入一个数组变量中 
正则表达式
ereg - 匹配正则表达式 
eregi - 大小写非敏感匹配正则表达式 
ereg_replace -匹配正则表达式并替换 
eregi_replace -大小写非敏感匹配正则表达式并替换 
split - 依规则切开字符串并以数组形势存储
字符串
AddSlashes - 加上斜杠后使用字符串 
echo - 输出一个或多个字符串 
join, implode - 将数组元素合并为字符串 
htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 
split - 依规则切开字符串并以数组形势存储 
13.4 扩展我们的范例主页
  我们将使用以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同时使得当前页自动的不被链接显示;同时还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。
导航栏
  实际上就是在footer.inc文件中加上一段代码。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的代码:
<?/* 输出该导航栏,链接所有除当前页的站内.php3文件 */# 读取目录$d = dir("./");echo "<P ALIGN="CENTER"> | \n";while($entry = $d->read()){// 忽略无文件情况if ( !is_file($entry) )continue;/* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用引出 */list($filenm, $fileext) = split(".",$entry, 2);// 忽略非.php3文件情况if( $fileext != "php3" )continue;/* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题)类似$title="something";并将以上标题内容分开,用作链接文字 */$linknm = "";$fp=fopen($entry,"r");while($buffer=fgets($fp, 4096)){$buffer = trim($buffer);// 我们已经把每个文件的标题放在文件的第一行以便搜索// 但是当你改变变量名称时可能会带来大麻烦if (ereg("title *= *"", $buffer)){/* 我们已经取得了标题内容并可以在此基础上进行去除空格等处理。必须以PHP代码方式处理,比如$title = "blah blah" */eval($buffer);// 然后将链接文字显示为标题文字$linknm = $title;break;}}fclose($fp);if ( $entry == basename($PHP_SELF) )echo "$linknm";elseecho "<A HREF="$entry">$linknm</A>";echo " | ";}$d->close();echo " </P>\n";?>
照片收藏夹
  我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。
同时我们需要建立一个可以列出在该目录下所有照片的页面。
文件上传
<?include("include/common.inc");// 我们在这里再做一次用户验证if(!isset($PHP_AUTH_USER)) {Header("WWW-Authenticate: Basic realm="$MySiteName"");Header("HTTP/1.0 401 Unauthorized");echo "Sorry, you are not authorized to upload filesn";exit;} else {if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$MyPassword ) ){// 如果是错误的用户名称/密码对,强制再次认证Header("WWW-Authenticate: Basic realm="My Realm"");Header("HTTP/1.0 401 Unauthorized");echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid.<P>";exit;} }if ( $cancelit ) {// 当浏览者按下"取消"按钮则转向首页面header ( "Location: front_2.php3" );exit;}function do_upload () {global $userfile, $userfile_size, $userfile_name, $userfile_type;global $local_file, $error_msg;global $HTTP_REFERER;if ( $userfile == "none" ) {$error_msg = "You did not specify a file for uploading.";return;}if ( $userfile_size > 2000000 ) {$error_msg = "Sorry, your file is too large.";return;}// Wherever you have write permission below...$upload_dir = "photos";$local_file = "$upload_dir/$userfile_name";if ( file_exists ( $local_file ) ) {$error_msg = "Sorry, a file with that name already exists";return;};// 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3…rename($userfile, $local_file);echo "The file is uploaded<BR>n";echo "<A HREF="$HTTP_REFERER">Go Back</A><BR>\n";}$title = "Upload File";include("include/header.inc");if (empty($userfile) || $userfile=="none") {// 输出以下表单?><FORM ACTION="<? echo "$PHP_SELF"; ?>" ENCTYPE="multipart/form-data" METHOD=POST><INPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="2000000"><INPUT TYPE="FILE" NAME="userfile" 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><?} else {if ( $error_msg ) { echo "<B>$error_msg</B><BR><BR>"; }if ( $sendit ) {do_upload ();} }include("include/footer.inc");?>照片图库<?include("include/common.inc");$title = "Gallery";include("include/header.inc");?><P>Here are some of our family photos. This PHP script can reallybe made better, by splitting into multiple pages.</P><?$d = dir("photos");while($entry = $d->read()){if (is_file("photos/$entry"))echo "<IMG SRC="photos/$entry">\n";}$d->close();?><?include("include/footer.inc");?>
另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。

 

 

unload(fn)-JQuery API Effects特效-JQuery API animate-JQuery API fadeIn(speed, callback)-JQuery API fadeOut(speed,callback)-JQuery API fadeTo(speed,opacity,callback)-JQuery API hide(speed,callback)-JQuery API hide()-JQuery API show(speed,callback)-JQuery API show()-JQuery API slideDown(speed,callback)-JQuery API slideToggle(speed,callback)-JQuery API slideUp(speed, callback)-JQuery API toggle()-JQuery API Javascript-JQuery API $.browser-JQuery API $.each(obj, fn)-JQuery API $.extend(target,prop1,propN)-JQuery API $.grep(array,fn,inv)-JQuery API $.map(array, fn)-JQuery API $.merge(first,second)-JQuery API $.trim(str)-JQuery API Ajax-JQuery API $.ajax(properties)-JQuery API $.ajaxSetup(settings)-JQuery API $.ajaxTimeout(time)-JQuery API $.get(url, params, callback)-JQuery API $.getIfModified(url, params, callback)-JQuery API $.getJSON(url, params, callback)-JQuery API $.getScript(url, callback)-JQuery API $.post(url, params, callback)-JQuery API 第一次来CSDN,以后希望大家多多帮助!! 在VB中获取和修改计算机名字 用什么软件能把扫描仪扫的文章变位文本文档?? 终止线程出错! VB中远程数据库的访问 如何实现使textbox中只能输入带两位小数的内容?即保证其中内容为*.XX(*代表任意数字串),凡不合要求的输入都被过滤? 如何在IIS的DefaultWEB Site的属性的HTTP Header中加入新的File type?? 怎样读jpeg的头文件,用C语言,谢了 为什么我远程连接sql server总不成功呢?我已经把1433端口开了啊 西游记 如何判断一个大整数是素数,如何找出整数的模逆 多层数据库开发源码大公开---不可多得! WinZip等的右键菜单Add to xxx.zip是怎么实现的? 帮帮忙,急! 因写程序丢过头发的请进. 怎样使lable的内容分两行显示 一个使我困惑的小问题,敬请关注(***100分***)!! 帮帮忙好吗? 二个关于字符串中对子串的替换与删除的问题? 怎样实现虚构造函数? 请问各位高手,手机图片和手机铃声是什么格式的?在电脑上能不能打开?应该怎么制作? 请大家帮个忙,有个小问题,如何用showmessage输出括号内的内容('%K%')?在线等待 A simple problem!? 救命,对话框显示的奇怪问题!!! An error 1069 (由于登录而无法启动服务器) 请问为什么向Oracle表里加不上记录? 我在局域网中用些东西常被主机防火墙隔了,有什么办法绕过防火墙 谁有MPEG-LAYER3的详细资料或连接? 我用一些软件如音乐大师等,一打开程序,该程序窗口就被关闭了,而在光盘上进行都可以? 如何判断一个大整数是素数,如何找出整数的模逆 怎样使用C#做互相通信的client/server程序 image类型字段,如何用update命令更新 请问指针的指针,二维数组,指针数组,之间有何区别 PB数据库连接字符串的问题 如何购买NFS软件,是Windows pc 访问AIX用的? 请囊相授求mcsd信息 为什么对话框程序最小化时占用内存会减少很多呢?(VC6) 备份主域控制器加入后,登陆不进去了 新手上路,DDE的,绝对给分!!! 帮帮我 怎样修改一个窗口的系统菜单? 怎样将自己做的ASP.NET程序放到IIS服务器上去?服务器需要怎么配置? 在线等待一个问题!!!解决问题就散帖 关于NETANT的有不健康连接的通知????? 一个关于SQL_Server2000复制时发生的问题,请大家帮忙!(在线等待) 当我删除一条记录时会跳出错误,谁帮我看看 请囊相授求帮助 对这个程序实现上大家有什么想法? 触发器一行更新与多行更新有什么区别 请问如何能让我的Cricheditctrl最多输入100个字符???谢谢!!!!! 关于向数据库中插入时间的问题 未受精的鸡蛋能不能孵出小鸡 养鸡场的母鸡比公鸡多120只,公鸡比母鸡少5分之4 一辆汽车从甲地去乙地,已行了全程的五分之二,这时距中点还有15千米.已行了多少千米? ice cream有可数和不可数的用法`````有米具体例子`````表和偶说只有不可数``书上说都有```给偶例子`` 一个养鸡场,公鸡只数比母鸡少3分之1,母鸡比公鸡多120只,公鸡有多少只用算术方法解 有关友情 的诗句越多越好 ice cream何时可数何时不可数 What do you like ( ) best?I like( ) 一辆汽车从甲地开往乙地,行了全程的五分之二后,离终点还有15千米甲乙两地相距离多少千米?可以用方程或算术,最好是算术!还要说明为什么? ice cream 为什么既是可数又是不可数 一条直线kx+(k+1)y-1=0与坐标轴围成的三角形的面积为Sk,求S1+S2+S3+S4+...S2009的值 一辆汽车从甲地开往乙地,已经行了全程的五分之二,距离中点还有120千米.甲地到乙地相距多少千米? 一次6克,每100粒重10克,一次吃多少粒 某养鸡场养母鸡共2500只,母鸡只数是公鸡的百分之四百,公鸡母鸡各多少只明天要 一辆汽车从甲地到乙地,已经行了全程的五分之二,离中点还有15千米,甲乙两地相距多 3元10克是多少一斤 "之" 的词性与用法局促一室之内 毛羽鳞鬣之间髻鬟之始掠 城居者未之知也脱笼之鹄 倩女之面呷浪之鳞 郊田之外 游乐场的门票原来每张30元,六一 期间八折优惠,购买一张门票能省多少元?请不要乱答 找一种虫子,黑色,会飞,1.5厘米长,0.5厘米宽,貌似喜欢藏在衣服里.前几天晒完衣服,收好了,放在柜子里,今天拿出来一件白色的衣服,发现里面有2只黑色的虫子,黑色会飞,1.5厘米长,0.5厘米宽,有触 关于诗句(只写关键两句)表示爱国 描写长江 表现友情 表示离情别意 描写黄河 描写华山 描写西湖 含有哲理的因我比较急,所以请大家尽快答复, 人教版六年级语文书(上下)的古诗有什么?要把古诗写出来!现在就要! 现在小米3还值不值得去买 if的词性和用法if的词性,后面是不是跟动词原形啊. 一辆汽车从甲地开往乙地,每小时行60千米,五分之二小时刚好行到全程的一半,甲、乙两地相距多少千米? 汽车运1500吨煤,已经运了13天还剩总数的7分之4求运完要多少天 六年级(1)班与(2)班人数相等,两个班各有一些同学参加计算机小组.(1)班参加计算机小组的人数恰好是六年级(1)班与(2)班人数相等,两个班各有一些同学参加计算机小组。(1) 一辆汽车从甲地到乙地,3小时行全程的五分之二,如果再行60千米,这时已行的和剩下的比是5:3.这辆汽车每小时行多少千米? 爱国、友情、思乡、立志、母爱、孝敬、惜时、学习、刻苦、岁寒三友的诗句!爱国、友情、思乡、立志、母爱、孝敬、惜时、学习、刻苦、岁寒三友的诗句!各一句!快其实只要爱国、友情、 六年级(1)班与(2)班人数相等,两两班各有一些同学参加计算机小组,(1)班参加计算机小组的人数恰好是(21/3,(2)班参加计算机小组的人数恰好是(1)班没有参加计算机小组人数的1/4.(1) 甲.乙两车同时从A.B两地相对而行,经3小时后,两车还相距全程的五分之二,已知甲车每小时行60千米,甲.乙两车的速度是5:4,求A.B两地的路程是多少千米? 按要求写诗句 友情:母爱:思乡:征战: 六年级同学中参加篮球兴趣小组的人数是计算机小组的3/4,计算机小组的人数是书法小组的2/5参加篮球的有24人,参加书法的有多少人? 客车从甲地开往乙地,已经行了全程的五分之二,距两地中点还有60千米,求甲,乙两地之间的公路线长多少千 some ice cream.ice cream要加s吗? 我抓了一只虫子,大家来看看,这是神马虫啊. 开学后的感受六年级 养鸡场母鸡比公鸡多120只,公鸡的只数是母鸡的20%,公鸡、母鸡各有多少只?不要方程 蒲公英的花是什么颜色的. 蒲公英的花有什么作用 咖啡的上层加了一些冰淇淋There is some ice cream________ ______ _______ _______ the coffee 我看见过一种花,花是 一个小球,有很多种色彩,有点像蒲公英想问下大家这个是什么花,我是在西南名族大学有点像啊 但是感觉和我看的不一样呢 蒲公英是花吗?要有确实的说明和证据哦! 模仿 写母爱的诗 一种花,像蒲公英绒绒的,红色的,是什么花.在广州那边很常见 蒲公英的花能吃吗蒲公英的 花 能吃吗(有毒吗)如果不能吃,那么理由是什么是花 方程解、养鸡场新买100只鸡,其中母鸡只数4倍比公鸡只数3倍多120只,买来的母鸡,公鸡各是多少只? 蒲公英花究竟是什么颜色的 一辆汽车从甲地开往乙地,每小时60千米,2小时行了5分之2.行完全要几小时?甲乙两地相距多少千米?5分钟内答出给20分 选择.Would you like -----ice cream or ____juice?a.a a b.an some c.some a d.a,some 数学游乐场(不会做的题)一项挖土工程,如果甲队单独做36天可以完成,乙队单独做45天完成.现在两队同时施工,工作效率提高百分之20.当工程完成5分之3是,突然遇到地下水,影响施工进度,使每 一辆客车从甲地开往乙地,3小时后已行的路程与未行的路程比为2/5,又行了60千米后,这时已行的路程与总路快一辆客车从甲地开往乙地,3小时后已行的路程与未行的路程比为2/5,又行了60千米 有一个养鸡场,其中的公鸡只数比母鸡少三分之一,母鸡比公鸡多120只,这个养鸡场有公鸡多少只?麻烦各位会数学的人帮忙解一下,急用,谢谢!要求用算术方法和方程解答这是六年级寒假生活中的 献分分拉今有12张卡片,每张上面都写着一个一位数.其中三张写着1,三张写着3,三张写着5,三张写着7.你能否从中选出5张卡片,使他们上面的数字之和为20,为什么? 一辆汽车从甲地开往乙地,以行了全程的2/5,再行60千米后,以行的和未行的比是3:4,甲乙两地相距多少千米? 养鸡场的母鸡只数是公鸡的六倍,后来公鸡和母鸡各增加六十只,结果母鸡的只数就是公鸡的四倍,后来养鸡场一共养了多少只鸡 what program do you like best?改为同义句!( ) your ( ) program? it和it's后面分别接什么词性 水果公司运一批水果,甲运输 公司收费方式是起步价八百元.每千米另收五元油费.乙运输公司收费方式是水果公司运一批水果,甲运输公司收费方式是起步价八百元.每千米另收五元油费.乙运输 I'll get some ice cream for you.中some ice cream划线,怎么问? work it out后面接什么词性的词在10点半前
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘