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

技术杂项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");?>
另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。

 

 

2013浏览器市场份额:Chrome领衔,Firefox、IE相去甚远 人人网陈弢:从RecSys2013看大数据和移动给推荐系统带来的挑战 继续紧逼Oracle:在占领谷歌等公司之后,MariaDB迈向企业端 移动周报:十款最实用的Android UI设计工具 阿里巴巴CTO王坚:开发者精神是云计算与移动互联网的“信仰” 黑客老鹰:安全软件同样需要用户体验 六届中国大数据技术大会PPT精粹(二) 专访百度蒋凡:从RecSys2013大会看推荐系统发展新趋势 Hike副总裁杜中强:携手阿里云OS,拥抱云时代 玩蟹科技CEO叶凯:手游和云计算的合作相得益彰 倒计时20天!金玩奖各大奖项花落谁家由你主宰 宅男程序员福利:来自纽约的28位智慧与美貌并存的IT女神 创季度记录:苹果发布第四季财报 iPhone仍是苹果商业心脏 在破晓中行走:一位盲人开发的盲人应用 腾讯云俱乐部成都站——云时代手游开发:用数据说话 首届微App峰会将在MDCC2013上举行 微信易信百度新浪等平台开发商云集 TUP Masters第七期:C++大师Lippman论编程新范式Hugo OpenCL用于13个微型计算机领域的经典案例 从测试数据来看Node.js和Java EE的性能区别 工作效率低下?业内人士建议你切勿追求完美 Mozilla发布可视化在线跟踪工具Lightbeam 望向海外:十大移动应用开发外包公司 Facebook支撑万亿Post搜索背后的技术窥探 云OS:共创智能化生态圈 云计算,让游戏世界更加精彩 360推儿童卫士手环,你怎么看? 量产谈判正在进行时:谷歌手表或比Google Glass先上市 Mozilla发布新版Firefox 25 提供支持Web Audio API UC产品总裁何小鹏:轻应用,做什么?怎么做? 高德携手阿里云发布“LBS云”,账户打通只是第一步 最后2天!2013移动开发者大会5折抢票倒计时 一些对未来的思索、问题,各位来谈谈 有谁知道用哪款打印机比较好呢? 关于类和接口设计问题 如何能把98 聯入2000 如何做一个后台管理-数据库备份程序 如果我用一个Winsock(index)控件数组。Winsock(1)、Winsock(2)同时调用一个延时函数会出什么问题吗? 已知表中字段ID的值,如何定位到这个字段? 谁知道为什么会出这种错误fatal error C1004: unexpected end of file found 小小问题,也有小小的分,不成敬意。 visio ,rose ,ERwin 他们各自的用途是什么,有什么区别呀? Oracle安装的问题——寻求帮忙!!!! 请问Crystal(水晶)报表如何对TextBox进行动态绑定字段? 如何设定mapx图层的颜色 对汇编的渴望! 谁有Asp做的网站?100分奉上! 都进来看看 vc新兵问函数调用菜鸟问题 紧急求救!!!! 谁有delphi关于ado编程 的资料啊(要详细一点的) TreeView的问题,很实在的问题。 关于在PB上实现错误事件处理!!! 关于组件的停靠 用VB.NET连接数据库老是连不了,快精神分裂了,救命啊! 关于SendMessage(高分相送,紧急) 急!!!高手进! 在查找结果中如果某一字段的值相等,只取出其中一条的问题! squid的安装问题???????????????????? SQL语句问题? 冒昧求救,光驱不能使用,不能boot 我的主机总收到外面发的广告信息? 高分求助急!!! 见鬼了,我添加一个TServerSocket控件,然后编译出现:Declaration terminate incorrectly 有谁知道用哪款打印机比较好呢? 按钮BitBtn1上有图片,在图片上写字的问题。(在先给分!) cystal reports 8.5 english显示繁体问题,急,等待 Unix下用什么源代码检测工具比较好? 我的电脑出什么问题了?各位帮帮忙 界面导航如何分类? 怎样得到本机的网卡号??? %¥#问个小问题,知道的都来抢分啊 谁知道哪儿有支持认证的SMTP组件下载? 有什么软件能查看PE文件的? ADO问题!!!! 100分求购最简单的串口程序!需要详细注释! 怎么给大家份呀?to wyz_csdn等(500分诚征wav 转换到MP3的源程序(VC++的例子)) 在directshow中,不知道怎样对播放的画面的亮度进行控制? 如果深愛的人要離開你,是變心還是死亡好一點?(讨论) 贴了二次为什么没有人指教? 戒水快两年了,如今回来看看,物不是人非啦 新手一问 关于datagrid 修改数据的问题,帮我看看,多谢 1.把两面镜子面对面平行放置,中间放个小玩具,镜中会出现几个玩具影像?2.背对这家里的大镜子站立,然后拿一块小镜子对着自己的脸,能看到多少个自己面部的影像? 酶联免疫法检测瘦肉精时怎么会有假阳性,在屠宰场两次实验表明阳性,第二天回实验室做呈阴性,什么原因?有没有关于酶联免疫瘦肉精的技术交流群?或者对这方面比较了解的人士帮我介绍一 离子迁移的实验中尿素和硫酸的作用是什么? 7、为了除去KCl固体中少量MgSO4和CaCl2杂质,须进行下列六项操作,正确的次序 是( ) ①加水溶解;②加热为什么是先加入过量BaCl2溶液,再加入过量K2CO3? 判断题,我做对了吗 尿素包合实验中要N2保护,请问如何操作? 除去KCl中的CaCl2 加过量K2CO3对么我觉得不对啊 这样不就有杂质K2CO3了么 从考试的角度了判断 对还是错啊 判断题对了吗? 赤橙黄绿青蓝紫下一句 为什么现在感觉下雨时空气中会有一股带腥味的泥土气息,而以前没有这种气味呢? 谁知道(迈克)用英语怎么打吗?急 判断题,对了吗, 土壤烧后有刺鼻的气味,说明土壤终有什么? 用英语说迈克感觉怎么样 鱼鳍在游泳中的作用实验答案 两平面镜互成一定角度 若入射光与B平面镜平行,经过两个平面镜反射后,反射光线与平面镜A平行,则两平面镜 灯泡两个接线柱上的线头直接碰在一起 淘气把一些苹果放到底面半径是10厘米的圆柱形容器里清洗,这时水面上升了4厘米,这些苹果的体积是 《长相思》〈清〉 纳兰性德写的体裁是越快越好!谢谢各位! 电流表示数为0和电流表无示数有什么区别吗? 卤族元素的递变性是怎么来着? 长相思 〔清〕纳兰性德 释义 压缩机上哪个接线柱是共用线的接线柱? 卤族元素结构的相似性和递变性如何决定了性质的相似和递变? 清朝纳兰性德写的《长相思》的意思 求安防售后服务管理制度 六爻,晚上十二点二十一分,问事(感情)能行吗,得临卦,感激不尽.我看《周易》卦辞没太明白. 24.(5分)某化学兴趣小组进行了识别化肥的探究活动.他们对氯化铵、碳酸氢铵、硫酸钾、磷矿粉四种化肥的实验探究步骤如下:(1)步骤一:取上述四种化肥各少量分别放入试管,观察,从外观 消毒供应室职业安全防护管理制度 谁知道急?消毒供应室职业安全防护管理制度谁知道 急呀 科学 研究鱼鳍的功能与作用 ,实验材料 实验步骤 实验结论 拓展应用 ,都说一下,求求了,我急啊, 鄂教版七年级上册文言文有哪些我要写罚题,语文书没带,请问有谁说下鄂教版七年级上册具体点的文言文. 搅拌器在有机化学实验室中是怎么使用的 观察鱼鳍的功能的实验步骤1设计的实验步骤2实验观察到的结论 中国的科举制创立于哪个朝代 甘油与白油的区别 英语翻译《笑府·夫夫》:“有与小官人厚者,及长为之娶妻,讲过通家不避.一日撞入房中,适亲家母在.问女曰:“何亲?”女答曰:‘夫夫.’”好像是说同性恋的吧? 如图,第8题,给出分析过程,80分送上!(第(1)小题不知道做对没有,如有做错,烦请更正,) 润肤油与甘油的效用区别是什么 某烯烃与氢气加成后得到的饱和烃是2,4-二甲基戊烷 ,该烯烃可能的结构有几种?请画出所有符合条件的化合物的结构式. 提问古文两小儿辩日孔子东游,见两小儿辩斗,问其故.一儿曰:“我以日始出时去近人,而日中时远也.”一儿以日初出远,而日中时近也.一儿曰:“日初出大如车盖,及日中,则如盘盂,此不为远者 几道判断题,亲们,帮帮忙!通过圆心和圆上任意一点的线段叫做半径 ( )男同学与女同学人数的比是3:4,女同学人数是男同学的一又三分之一倍( )分母是一百的分数叫做百分数.( )一个数( 第三部答案是1.7*10^-5 请问下 是怎么算出来的... 研究历史应该从哪个朝代开始关于政治、文化、经济 高分求几道判断题?谢谢亲们呢…1.空间中任意三点可以确定一个方向 2.不等式9x的2次方-6x+1大于等于0的解集为多少 3.x是锐角,则180度+x是第几象限角 4.若simX=2m-1有意义,m范围是 5.直线ax+2y+2=0与 甘油三脂4.11(参考值是0.56-1.70)低密胆固醇1.31(参考值是2.07-3.1)葡萄糖7.60(参考值是3.3-5.56)怎么治疗 赤橙黄绿青蓝紫各代表什么意思?详细的问题说明,有助于回答者给出准确的答案 判断题 会几个说几个 1、从伽利略变换可以推出洛伦兹收缩.是 否 2、布鲁诺认为宇宙是无限的,恒星都是遥远的太阳,这和哥白尼认为太阳是宇宙中心的观点是不同的.是 否 3、洛伦兹和庞卡莱 曲突徙薪文言文答案是神吗 两面镜子面对面平行放置,在其中间放一玩具,镜面中会出现多少个玩具影像 亲们帮我看看1、我们要全面认识自己,把自己的长处和别人的不足相比,我们可以比出自信.把自己的不足和别人的长处相比,可以比出我们努力的方向.2、只要社会、学校、家庭、司法携手为孩 英语翻译【师父,我一直以为活动定在周六,就把所有的事情推到了周日,刚才才得知活动改为周日.实在对不起,不能参加了,希望能理解,但要知道,我的心和大家在一起】 把两面镜子面对面平行放置,中间放一个小玩具,会有多少个影子做做这个实验吧. 亲们,判断题 一个长方体容器长宽都是2厘米向容器里倒入5.5升水再把苹果放水中,这时水深15厘米,这个苹果的体积是多少?急 两个镜子面对面放,中间放一个玩具,镜中会有几个玩具影?要正确答案:把两个镜子面对面放置,中间放一个玩具,镜中会有多少个玩具影像?背对着家里的大镜子站立,然后拿一块小镜子对着自己 谁知道司马光的《唐太宗论止盗》的译文? 渗透试验使用尿素会怎么样本来是使用蔗糖溶液,如果用尿素会怎么样呢? 把两面镜子面对面平行放置,在两面镜子中间放一个小玩具,镜子中会出现几个玩具的影像? 判断题做对了吗 把两升水倒入一个长方体的容器,水的高度是十厘米,把一个苹果浸入水中水面升高了二厘米,这个苹果的体积是多少? 激情与危险同在:美媒盘点五例“离奇”阿富汗警察被指罪行累累 军官爆料引枪歌迷掷物损坏麦克风 比伯演唱会提早结民警执法被撞智力严重弱化 不认识儿子杨幂古天乐木村拓哉 那些年一起追过的朝鲜一军舰执行任务时沉没 指挥官和士广州高端相亲会测谎仪上阵 只看女方外六方会谈韩方团长访美 商讨重启朝核对美国洛杉矶机场枪击案嫌犯面临终身监禁河北遭遇持续大雾笼罩 大面积高速关闭外交人员故事三则:阅尽人生博弈 领教外交官的家庭生活:丈夫常年在外 都是中国发展 世界受益——专访法国参议院地沟油\"变废为宝\"曲折路:海南生专访:中国与葡语国家经贸关系将再上新揭秘中国外交官是怎样炼成的:缺乏写作洛杉矶国际机场枪击案嫌疑人面临谋杀控浙江商品房销售面积和销售额增幅“双降境外媒体:中俄痛批美沉迷“偷窥世界”韩国学者:中国复兴对世界和平稳定意义港报:专家猜测中国或用人民币还伊朗“做一个令人舒服的人找个永远不会放弃你的人昂山素季,一个把自己活成了传奇的亚洲不要太早遇到对的人闭门只为书卷香关闭朋友圈几小时后如果人人都理解你,你该是有多普通手机被偷,一条短信让小偷跑步送回!这世界上最美的十封信前列腺炎最容易和哪些人“纠缠不清”是不是有颜又有才的男人都可以这么任性太阳的后裔完了,但宋仲基要上街来给我为了优雅地报复邻居,我把今早喝的豆汁李克强:深化教育改革激发更大活力 贯“送故事回家”2016全国爱心阅读活一个女生在北京地铁内遭猥亵殴打的经历11 个抹茶冷知识,啊啊啊我的少女心加拿大政府查获的高档珠宝名表要在温哥富人豪宅VS穷人蜗居到底有多残酷 穷3月大温房价狂飙两成 卑诗房屋销量大梅蒂斯族人胜了!加拿大66万原住民获
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘