PHP动态创建Web站点
在这一篇中我写了一些动态创建Web站点的一些内容,例如黏性表单、发送电子邮件、日期函数等。希望能对大家有所帮助,别忘了好评哦。
PHP有4个用于使用外部函数的函数:include()、include_once()、require()和require_once().
为了使用它们,PHP脚本中将包括如下代码行:
include_once('arr.php');
require('/path/to/filename.html');
两种使用外部函数的区别:
使用起来完全一样,只是在出错时会有所不同:include()函数不工作,就会向Web浏览器打印一个讲稿,但是脚本会继续运行,如果require()失败,就会打印一个错误,并且脚本会终止运行。
这两个函数还有一个*_once()版本,它们保证被考虑的文件只会会包含一次,而不管脚本可能试图包含它多次。
eg:
<body>
<?php
require('arr1.php');
include('arrsort.php');
?>
</body>
利用PHP的粘结能力处理HTML表单
<body>
<?php
require('arr1.php'); //先把要执行的文件包含进来
if(isset($_POST['name'])) //判断是否输入,然后往下执行..
{
$name=$_POST['name'];
echo "$name";
}
?>
</body>
黏性表单
预先设置文本框中输入的内容:
<input type="text" name="city" size="20" value="Innsbruck"/>
让PHP预先设置该值:
<input type="text" name="city" size="20" value="<?php echo $city;?>"/>;
函数
函数名和变量的命名规则相同,但是函数名不区分大小写。例如:function name() 和function Name()是两个完全相同的函数。
时期和时间函数
date('format',[timestamp]);
依据指定的格式返回某一日期和时间的文本字符串。timestamp是一个可选项,表示正在考虑的日期从Unix Epoch(Unix时间戳,1970年1月1日0点)起所经过的秒数。它允许你获得关于特定日期的信息,如星期几。如果未指定时间戳,PHP就会使用服务器上的当前时间。
字符 |
含义 |
示例 |
Y |
用4位数字表示年 |
2005 |
y |
用2位数字表示年 |
05 |
n |
用1位或2位数字表示月份 |
2 |
m |
用2位数字表示月份 |
02 |
F |
月份 |
February |
M |
用3个字母表示月份 |
Feb |
j |
用1位或2位表示一月中的某一天 |
8 |
d |
用2位数字表示一月中的某一天 |
08 |
l |
星期几 |
Monday |
D |
用三个字母表示星期几 |
Mon |
g |
小时,用1位或2位数字表示的12小时格式 |
6 |
G |
小时,用1位或2位数字表示的24位小时格式 |
18 |
h |
小时,用2位数字表示的12小时格式 |
06 |
H |
小时,用2位数字表示的24小时格式 |
18 |
i |
分 |
45 |
s |
秒 |
18 |
a |
am或pm |
am |
A |
AM或PM |
AM |
可以使用mktime()函数找出特定日期的时间戳。
$stamp=mktime(hour,minute,second,month,day,year);
可以使用getdate()函数返回日期和时间的一组值:
$dates=getdate();
echo $dates['month'];
键 |
值 |
示例 |
year |
年 |
2005 |
mon |
月 |
12 |
month |
月份名称 |
December |
mday |
一月中的某一天 |
25 |
weekday |
星期几 |
Tuesday |
hours |
小时数 |
11 |
minutes |
分钟数 |
56 |
seconds |
秒数 |
47 |
eg:
<body>
<?php
function md($m=NULL,$d=NULL,$y=NULL)
{
$months=array(1=>'January','February','March','April','May','June','July','Augst','September','October','November','December');
echo '<select name="month">';
foreach($months as $key=>$value)
{
echo "<option value=\"$key\"";
if($key==$m){echo 'selected="selected"';}
echo ">$value</option>\n";
}
echo '</select>';
echo '<select name="day">';
for($day=1;$day<=31;$day++)
{
echo "<option value=\"$day\"";
if($day==$d)
{
echo 'selected="selected"';
}
echo ">$day</option>\n";
}
echo '</select>';
echo '<select name="year">';
for($year=2001;$year<=2015;$year++)
{
echo "<option value=\"$year\"";
if($year==$y)
{
echo 'selected="selected"';
}
echo ">$year</option>\n";
}
echo '</select>';
}
echo '<h1 id="mainhead">select a date:</h1><p><br/><p><form method="post">';
$dates=getdate();
md($dates['mon'],$dates['mday'],$dates['year']);
echo '</form></p><br/></p>';
echo '<p>Today is'.date('l').'. The current time is'.date('H:i a').'.</p>';
?>
</body>
格式化日期函数:
DATE_FORMAT('2005-05-20',%M,%d,%Y);
技巧总结
PHP的日期函数反映了服务器上的事件(因为PHP运行在服务器上);如果想确定客户计算机上的日期和时间,则需要使用javascript;
checkdate()函数带3个参数——月份、天和年份——并检查它是否是一个有效的日期(现在或过去实际存在的日期)。
发送电子邮件
mail($to,$subject,$body);
$to值应该是一个电子邮件地址或一系列地址,中间用逗号隔开。
$subject值将创建电子邮件的主题行,
$body可用于在其中设置电子邮件的内容。
在创建电子邮件正文时,可以在双引号内使用换行符(\n),使文本分布在多行上。
$mail()函数带有四个可选参数,用于额外的电子邮件头部。在此可以设置From(发件人)、Reply-To(回复)、Cc(抄送)、Bcc(密件抄送)以及类似的设置。
eg:
mail('fanchangfa@126.com','Question regardingScript 3.13',$body,'From:killman@hotmail.com');
要在电子邮件中使用多个不同类型的头部,可以用\r\n把他们隔开:
$headers="From:John@hotmail.com\r\n";
$headers.="Cc:jane@hotmail.com,joe@hotmail.com\r\n";
mail('fanchangfa@126.com','Question','$body,$headers');