PHP新手上路(14)

2016-02-19 17:43 1 1 收藏

想不想get新技能酷炫一下,今天图老师小编就跟大家分享个简单的PHP新手上路(14)教程,一起来看看吧!超容易上手~

【 tulaoshi.com - Web开发 】

  其他杂项

  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()必须在任何实际内容杯输出到浏览器之前调用。以下是一个简单例子:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  

?if (empty($VisitedBefore)){// 如果没有设定cookie,为cookie赋上当前时间值// 函数中的最后一个参数声明了该cookie保存的时间// 在这个例子中是1年// time()函数返回自1970年1月1日以来的以秒数计的时间SetCookie("VisitedBefore",time(), time()+(60*60*24*365));}else{// 欢迎浏览者再次光临echo "Hello there, welcome backBR";// 读取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 - 依规则切开字符串并以数组形势存储

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  字符串

  AddSlashes - 加上斜杠后使用字符串

  echo - 输出一个或多个字符串

  join, implode - 将数组元素合并为字符串

  htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式

  split - 依规则切开字符串并以数组形势存储

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  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 " /Pn";?

  照片收藏夹

  我们将引用基于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,mp3rename($userfile, $local_file);echo "The file is uploadedBRn";echo "A HREF="$HTTP_REFERER"Go Back/ABRn";}$title = "Upload File";include("include/header.inc");if (empty($userfile) || $userfile=="none"){// 输出以下表单?FORM ACTION="? echo "$PHP_SELF"; ?" ENCTYPE="multipart/form-data" METHOD=POSTINPUT TYPE="HIDDEN" NAME="MAX_FILE_SIZE" VALUE="2000000"INPUT TYPE="FILE" NAME="userfile" SIZE="24" MAXLENGTH="80"BRBRINPUT TYPE="SUBMIT" VALUE="Upload File!" NAME="sendit"INPUT TYPE="SUBMIT" VALUE="Cancel" NAME="cancelit"BR/FORMIFONT SIZE="2"(You may notice a slight delay while we upload your file.)/FONT/I?} else {if ( $error_msg ) { echo "B$error_msg/BBRBR"; }if ( $sendit ) {do_upload ();}}include("include/footer.inc");?

  照片图库

  

?include("include/common.inc");$title = "Gallery";include("include/header.inc");?PHere 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");? 

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

来源:https://www.tulaoshi.com/n/20160219/1615914.html

延伸阅读
标签: Web开发
建设一个简单交互的网站(五) 8. 投票系统 在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。 8.1 投票系统(mypolls.php3): ?$status=0;if...
标签: PHP
  建设一个简单交互的网站(五) 8. 投票系统 在许多时候,我们需要收集上网者和网友们的意见。例如:新版页面与旧版页面的比较;对某一事情的看法;对体育比赛结果的预测等等。这时候,你需要一个非常有效的网上调查系统。使用PHP就可以非常方便地实现你的这一构想。 8.1 投票系统(mypolls.php3): <? $status=0; if(is...
标签: PHP
建设一个简单交互的网站(一)   PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 5.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、...
标签: PHP
 为什么要选择PHP   2. 竞争对手:ASP,mod_perl,JSP 用于实现交互式动态网页的技术有好多,其中CGI又称通用网关接口(Common Gateway Interface),是外部程序和WEB服务器之间的标准编程接口,但是CGI程序带来的缺点实在太多;而Perl很好地解决了CGI中的问题,被用来驱动复杂的WEB技术;微软的ASP(Active Server...
标签: Web开发
12. PHP资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 12.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。 国内 http://www.phpuser.com/ - PHP中文用户,也就是这里了 http://www.phpx.com/ ...

经验教程

460

收藏

48
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部