PHP实例

php实例教程php实例教程 php实例教程php实例教程php实例教程php实例教程php实例教程php实例教程php实例教程 立即下载

PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。

3.1 计划一个站点
一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。

标题页面--front.html


这里我们有一个非常简单的html文件:
<HTML>
<HEAD>
<TITLE>
我的个人主页--欢迎
</TITLE>
</HEAD>
<BODY>
<H1>
我的个人主页
</H1>
<H2>
欢迎
</H2>
<HR>
<>
欢迎来我的寒舍,虽然这里现在暂时还没有什么。
</P>
<>
不过我希望马上就可以多起来。
</P>
<HR>
< ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>

联系信息页面--count.html

同样我们又有了一个简单页面:
<HTML>
<HEAD>
<TITLE>
我的个人主页--联系信息
</TITLE>
</HEAD>
<BODY>
<H1>
我的个人主页
</H1>
<H2>
联系信息
</H2>
<HR>
<>
你可以通过1-800-PHP-INFO联系我
</P>
<HR>
< ALIGN="CENTER">
<SMALL> <I>
Copyright ? 我自己,1999
</I> </SMALL>
</P>
</BODY>
</HTML>


3.2 HTML到PHP

从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。

全站通用变量设定:common.inc
<?
// 全站通用变量
$MyEmail = "phptalk@tnc.org";
$MyEmailLink = "<a href=/"mailtoMyEmail/">$MyEmail</a>";
$MyName = "HP Talk";
$MySiteName = $MyName."'s Home Page";
?>

通用页面头部:header.inc
<?
// 定义通用页面头部
?>
<HTML>
<HEAD>
<TITLE>
<? echo "$MySiteName - $title"; ?>
</TITLE>
</HEAD>
<BODY>
<H1>
<? echo "$MySiteName"; ?>
</H1>
<H2>
<? echo "$title"; ?>
</H2>
<HR>

通用页面底部:footer.inc
<?
// 通用页面底部
?>
<HR>
< ALIGN="CENTER">
<SMALL> <I>
Copyright ? by
<? echo "$MyName ($MyEmailLink)"; ?>
, 1999
</I> </SMALL>
</P>
</BODY>
</HTML>

新的页面front.php3:
<?
include("include/common.inc");
$title = "Welcome";
include("include/header.inc");
?>
<>
欢迎来我的寒舍,虽然这里现在暂时还没有什么。
</P>
<>
不过我希望马上就可以多起来。
</P>
<?
include("include/footer.inc");
?>

新的cont.php3:
<?
include("include/common.inc");
$title = "Contact Information";
include("include/header.inc");
?>
<>
你可以通过1-800-PHP-INFO联系我
</P>
<?
include("include/footer.inc");
?>

现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。

3.3 计数器

让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码:
<?
/*
|| 一个简单的计数器
*/
function get_hitcount($counter_file)
{
/* 将计数器归零
这样如果计数器还未被使用,初始值将是1
你当然也可以把初始值设成20000来骗人咯
*/
$count=0;
// 如果存放计数器文件已经存在,读取其中的内容
if ( file_exists($counter_file) )
{
$fp=fopen($counter_file,"r");
// 我们只取了前20位,希望你的站点不要太受欢迎啊
$count=0+fgets($fp,20);
// 由于函数fgets()返回字符串,我们可以通过加0的方法将其自动转换为整数
fclose($fp);
// 对文件操作完毕
}
// 增加一次计数值
$count++;
// 将新的计数值写入文件
$fp=fopen($counter_file,"w");
fputs($fp,$count);
fclose($fp);
# 返回计数值
return ($count);
}
?>
然后我们更改front.php3文件以显示这个计数器:
<?
include("include/counter.inc");
// 我把计数值放在文件counter.txt中,读出并输出
printf ("<CENTER><B>%06d</B></CENTER> <BR> /n",
get_hitcount("counter.txt"));
include("include/footer.inc");
?>
看看我们的新front.php3

3.4 反馈表单

让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。

PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。
<FORM name="myform" ACTION="process_form.php3" METHOD="POST">
<INPUT TYPE="TEXT" NAME="mytext" VALUE="Some Value">
</FORM>

在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。

根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。

表单:form.php3
<?
include("include/common.inc");
$title = "Feedback";
include("include/header.inc");
?>
<P>
<FORM ACTION="sendfdbk.php3" METHOD="POST">
<INPUT TYPE="text" NAME="name" value="Your name" SIZE="20" MAXLENGTH="30">
<INPUT TYPE="text" MAXLENGTH="40" WIDTH="20" value="Your Email" NAME="email">
<BR>
<TEXTAREA ROWS="7" COLS="40" NAME="comment">
Your feedback on my home page.
</TEXTAREA>
<BR>
<INPUT TYPE="submit" VALUE="Send Feedback!">
</FORM>
</P>
<?
include("include/footer.inc");
?>

处理表单:sendfdbk.php3
<?
include("include/common.inc");
$title = "Feedback";
include("include/header.inc");
if ( $name == "" )
{
// 现在我很讨厌匿名的留言!
echo "Duh ? How come you are anonymous?";
}
elseif ($name == "Your name")
{
// 这个浏览者真是不想透露姓名啊!
echo "Hello ? <B>Your name</B> is supposed to be replaced with
your actual name!</B>";
}
else
{
// 输出一段礼貌的感谢语
echo "
Hello, $name.
<BR>
Thank you for your feedback. It is greatly appreciated.
<BR>
Thanking you
<BR>
$MyName <BR>
$MyEmailLink
";
// 最后mail出去
mail($MyEmail, "Feedback.","
Name : $name
E-mail : $email
Comment : $comment
");
}
include("include/footer.inc");
?>

3.5 简单的站内搜索引擎

PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
<?
include("include/common.inc");
$title = "Search";
include("include/header.inc");
?>
<P>
<FORM ACTION="<? echo "$PHP_SELF"; ?>" METHOD="POST">
<INPUT TYPE="text" NAME="searchstr" value="<? echo "$searchstr"; ?>"
SIZE="20" MAXLENGTH="30">
<INPUT TYPE="submit" VALUE="Search!">
</FORM>
</P>
<?
if ( ! empty($searchstr) )
{
// empty()用来检查查询字串是否为空
// 如果不为空,调用grep查询
echo "<HR>/n";
// 调用grep对所有文件进行大小写非敏感模式的查询
$cmdstr = "grep -i $searchstr *";
$fp = popen( $cmdstr, "r" ); // 执行命令并输出管道
$myresult = array(); // 存储查询结果
while( $buffer = fgetss ($fp, 4096))
{
// grep返回这样格式: 文件名:匹配字串出现行数
// 因此我们利用函数split()分离处理数据
list($fname, $fline) = split(":",$buffer, 2);
// 我们只输出第一次匹配的结果
if ( !defined($myresult[$fname]))
$myresult[$fname] = $fline;
}
// 现在我们将结果存储在数组中,下面就可以处理并输出了
if ( count($myresult) )
{
echo "<OL>/n";
while(list($fname,$fline) = each($myresult))
echo "<LI>
<A HREF=/"$fname/">$fname</A> : $fline </LI>/n";
echo "</OL>/n";
}
else
{
// 如果没有查询结果
echo "Sorry. Search on <B>$searchstr</B>
returned no results.<BR>/n";
}
pclose($fp);
}
?>
<?
include("include/footer.inc");
?>


注释:

PHP_SELF是PHP内建的变量。包含当前文件名。
fgets()按行读取文件,最多4096(指定)字符长度。
fgetss()与fgets()相似,只是解析输出的HTML标记。
split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。
each()是一个数组操作函数,用来更方便的遍历整个数组。
popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。
请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索。

《PHP网站开发实例教程》源代码.zip 立即下载

相关推荐

速腾R128雷达+海康全景相机ROS数据采集避坑实录:从‘雷达不转’到MATLAB标定的完整流程

本文详细记录了速腾R128激光雷达与海康威视全景相机在ROS环境下的数据采集与MATLAB标定全流程。从硬件配置的常见陷阱(如雷达旋转参数设置)、驱动编译的依赖管理,到多传感器同步的实战技巧和MATLAB标定方法,提供了完整的避坑指南和技术方案。特别针对RoboSense R128雷达和海康相机的特殊需求给出了具体解决方案。

weixin_28717807的博客 1218

站内搜索功能的几种实现方式

原文地址:https://pengfeixc.com/blogs/website/site-search 今天花了一些时间优化了网站的搜索功能。 一.简易版搜索 之前的网站搜索功能实现比较简单。过程大致如下: 用户在搜索框输入要搜索的关键字。 浏览器根据关键字,发送搜索请求。 服务器收到请求。 服务器根据搜索关键字,查询数据库(根据文章标题和文章描述),将查到的文章返回给浏览器。 浏览器根据请求response,渲染文章列表。 由于这个搜索功能只考虑了文章的标题和描述,没有搜索文章的内容,功能很弱,无法

AhCola 2万+

用Multisim和AD2复刻经典:手把手教你搭建μA741三角波-方波发生器(附完整避坑指南)

本文详细介绍了如何使用Multisim和AD2搭建基于μA741运算放大器的三角波-方波发生器,包括电路原理、Multisim仿真流程、AD2硬件搭建及调试技巧。通过对比理论计算、仿真和实测数据,深入分析器件非理想特性的影响,并提供16个典型问题的解决方案,帮助读者掌握波形发生器的设计原理和工程调试经验。

weixin_28744423的博客 284

站内搜索引擎

1.什么是搜索引擎?如图所示:我用的是谷歌浏览器,但是我的搜索引擎可以跟换 。切换到bing主页在搜索框中我们输入一段话,跳到一个带有搜索结果的页面如下:搜索引擎的核心功能:查找用户输入的词/一句话 相关联的网页。 搜索结果页一条记录包含的信息如下: 当我们点击标题,会跳转到落地页,如下图:相信大家对搜索引擎都有一定的了解了。2.实现搜索引擎的核心思路:搜索引擎的网页又该如何获取呢?像百度,搜狗,这样的大型搜索引擎,每天会有很多爬虫去爬取大量网页,在存储起来。我们这里先直接去官网下载jdk文档(之后抽取时间

qq_56444564的博客 2313

从Simulink到Amesim:一份FMU联合仿真的避坑指南(含UDP通讯完整配置)

本文详细解析了从Simulink到Amesim的FMU联合仿真全流程,重点介绍了UDP通讯配置中的常见陷阱与解决方案。通过实战案例,帮助工程师规避编译器不兼容、步长设置冲突等典型问题,提升复杂系统仿真的效率与准确性。

weixin_34046298的博客 336

FreeRTOS移植实战:从零开始在STM32上搭建多任务系统(含Proteus仿真配置)

本文详细介绍了如何在STM32平台上从零开始移植FreeRTOS,并搭建多任务系统,包含Proteus仿真配置。通过环境准备、源码移植、多任务设计到仿真调试的全流程实战,帮助开发者快速掌握FreeRTOS在STM32上的应用技巧,提升嵌入式开发效率。

weixin_33737134的博客 231

java实现站内搜索

1.站内搜索 在以往的网站建设,企业系统的搭建过程中,因为信息比较简单,比较少,站内搜索可能不是必要的选项,而今,时代的发展, 信息量的增大,网站逻辑的复杂,企业自身对信息架构、管理、发布的需求,以及用户对信息的组织、查询、可寻性的要求越来越高,于是站内搜索出现了。 2.和别的搜索引擎的区别 谷歌、百度、搜搜等通用搜索引擎都会免费开放站内搜索功能,以嵌入网页代码的形式保持与搜索引擎机器人的沟

心存高远,脚踏实地 8060

用UltraISO制作镜像以RAW格式刻录系统到U盘后,在Windows上无法识别的解决办法

在这篇文章中,用UltraISO制作镜像后,会使得U盘无法识别!!!那么,如何抹掉U盘的数据,格式化U盘呢?

拥抱具身智能,昇腾Ascend C 2730

PHP 简单开发实例

PHP 简单开发实例 一 .简单日历制作 &lt;?php $days=31; echo "&lt;table width='700px' border='1px'&gt;"; for($i=1;$i&lt;=$days;){ echo "&lt;tr&gt;"; for($j=0;$j&lt;7;$j++){ if($i&gt;$days){ ...

qq_39702981的博客 6225

高通camera调试经验总结

修改AF对焦模式 adb shell setprop vendor.debug.camera.af.manual 2 //使能手动对焦 adb shell setprop vendor.debug.camera.af.manual 0 //使能自动对焦

weixin_43381364的博客 1万+

串口、COM、UART、TTL、USB、RS-232、RS-485、I2C、SPI、CAN、1-WIRE

一文搞定,赶紧收藏吧

记得诚 3万+

PHP实战小案例--《信息管理系统》(附源码)

闲来无事,受老师所托写个php小案例方便讲课。单身狗的我就利用这一周六下午苦干了几个小时弄出来了,给大家分享一下呗。 技术总结: 1)没有mvc架构,没有用模板引擎,几乎thinkphp里的所有技术都没有用到,没办法呀,用了咋讲课? 2)session技术实现登录界面和防止越权访问界面 3)php连数据库mysql 项目结构: 效果显示: 1.登录界面: 2)登录成功: 3)添加页面: 4)修改页面: 5)还有一些其他的零碎的功能,可自己去玩玩哦! 项目源码: sql文件: /* SQLyog 企

qq_45273552的博客 1万+

低功耗 AI 人体存在检测系统:智能照明与安防的高效解决方案

低功耗 AI 人体存在检测系统通过 “ESP32-C3 主控 + HX7110 AI 模块” 的硬件组合,搭配双重检测算法与深度睡眠机制,既解决了传统检测方案的误报问题,又满足了长时间低功耗运行需求。系统接线简单、代码可直接移植,可快速集成到智能照明、安防监控等物联网设备中,具备广泛的应用前景。

weixin_42300449的博客 226

php多实例

在 Linux 上运行多个 PHP 实例是一种常见的配置,特别是在需要托管多个应用程序或网站,并且它们可能需要不同的 PHP 版本或配置时。安装多个 PHP 版本:首先,您需要安装多个 PHP 版本。您可以使用您的发行版提供的软件包管理工具,如apt、yum或者从源代码编译安装多个 PHP 版本。确保每个 PHP 版本安装在不同的目录下,并且它们不会相互干扰。配置不同的 PHP 实例:对于每个 PHP 版本,您需要创建不同的配置文件。通常情况下,PHP 配置文件位于。

XMYX-0 828

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

php实例化含义,php实例化什么意思

php实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化,是将一个抽象的概念类,具体到该类实物的过程,实例化过程中一般由【类名 对象名 = new 类名(参数1,参数2...参数n)】构成。推荐:《PHP视频教程》实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = new 类名(参数1,参数2......

weixin_29247219的博客 350

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

实例化php,php实例化什么意思

php实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化,是将一个抽象的概念类,具体到该类实物的过程,实例化过程中一般由【类名 对象名 = new 类名(参数1,参数2...参数n)】构成。实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = new 类名(参数1,参数2...参数n)构成。以PHP为...

weixin_39553352的博客 276

「PHP系列」PHP AJAX运用之数据库实例/XML实例

这个示例展示了如何使用AJAX从PHP脚本获取XML数据,并使用JavaScript解析和显示这些数据。在这个例子中,我们将使用一个简单的MySQL数据库和HTML表单来触发AJAX请求。在这个页面中,我们将有一个简单的表单,用户可以通过输入用户名来查询数据库。首先,你需要一个PHP脚本来生成XML数据。这个PHP脚本将接收AJAX请求中的用户名参数,查询数据库,并将结果以HTML格式返回给AJAX请求。在HTML页面中,你需要一个AJAX请求来调用PHP脚本,并处理返回的XML数据。

日常笔记/总结/系列知识梳理 1012

php实例化对象的实例方法

更多python教程请到友情连接: 菜鸟教程https://www.piaodoo.com 茂名一技http://www.enechn.comppt制作教程步骤 http://www.tpyjn.cn 兴化论坛http://www.yimoge.cn 电白论坛 http://www.fcdzs.com 想要将类实例化成对象,只是多了一个简单的小步骤,需要使用new关键字并且在后面加上一个和类名同名的方法就可以了。表明一个新的对象。 需要注意的是,当实例化对象不需要为对象传递参数时,在new关键字的后面

菜鸟教程 543

小型php实例,php实例

php实例[编辑]简介PHP:一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext PrEPRocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法...

weixin_32376927的博客 148

php实例化类的方法,php实例化类的方法是什么

【摘要】PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。下面是php实例化类的方法是什么,让我们一起来看看php实例化类的方法是什么的具体内容吧!php实例化类的方法是什么php实例化类的方法:首先声明一个类,可以在class前加一些关键字,如abstra...

weixin_32236671的博客 231

php单例模式的实例,PHP的单例模式的一个实例_php

这篇文章对于php单例模式的解释并不一定完善!只是举一个实例而已,目的是让我自己通过一个实例可以加深对单例模式的理解!在此,仅供参考!单例:可以简单的理解是通过一个类,只能实例化单个对象,不能实例化多个对象!class e {public $uname;static $obj = NULL; //定义一个静态属性private function __construct() { //在...

weixin_42371574的博客 136

nginx php实例,nginx配置PHP实例

本文主要和大家分享nginx配置PHP实例,主要以代码得形式,希望能帮助到大家。腾讯云nginx配置文件#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/ng...

weixin_28836507的博客 223

php类的实例化方法,php中类的定义和实例化方法

php中类的定义和实例化方法发布时间:2020-06-18 11:29:37来源:亿速云阅读:57作者:Leah这篇文章运用简单易懂的例子给大家介绍php中类的定义和实例化方法,代码非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php类的定义类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代...

weixin_39714849的博客 193

PHP 完整表单实例

PHP - 在表单中确保输入值 在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本, 各字段名为: name, email, 和 website。 在备注中的 textarea 字段中,我们将脚本放于 <textarea> 和 </textarea> 标签之间。 PHP脚本输出值为: $name, $email, $website, 和 $comment 变量。 然后,我们同样需要检查被选中的单选按钮, 对于这一点,我们 必须设置.

nh18002175023的博客 165

php分页实例,学习php分页代码实例

学习php分页代码实例学习PHP,一定会遇到操作MYSQL数据库,而且会对数据库里的数据做分页显示出来的问题,下面写一个小例子学习一下PHP分页的方法。PHP分页有很多方法,今天我们就用一个小例子演示一下这个功能。复制代码 代码如下:$result = "";// 上一页if ($offset>0) {$result .= "Prev";}$pages = $allPageNums; //...

weixin_33588445的博客 150
上一篇: C#教程第二课:表达式,类型和变量
下一篇: PHP实例
lfpwhy
博客等级 码龄17年 6粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值