我们实现最简单的文件上传功能,只要利用php教程自带的move_uploaded_file函数就可以方便实现
<?php
$tmp_filename = $_FILES['myupload']['tmp_name'];
if(!move_uploaded_file($tmp_filename,"/path/to/dest/{$_FILES['myupload']['name']}")) {
echo "An error has occurred moving the uploaded file.<BR>";
echo "Please ensure that if safe_mode is on that the " . "UID PHP is using matches the file.";
exit;
} else {
echo "The file has been successfully uploaded!";
}
?>
PHP 函数
在本教程中,我们将为您讲解如何创建自己的函数。
如需内建函数的参考和实例,请访问我们的 PHP 参考手册。
创建 PHP 函数
函数是一种可以在任何被需要的时候执行的代码块。
创建 PHP 函数:
函数功能简述。
语法: 返回类型 函数名称(类型 参数1, 类型 参数2....);
返回值: 变量类型
函数种类: 例如: 数据库教程, 网络..等等
内容说明
函数说明详述内容
使用范例
函数的范例 (本栏可能省略)
参考
小节索引 函数名称, 小节索引 函数名称... (本栏可能省略)
一个简单的函数,在其被调用时能输出我的名称的:
<html>
<body>
<?php教程
function writeMyName()
{
echo "David Yang";
}
writeMyName();
?>
</body>
</html>
现在,我们要在 PHP 脚本中使用这个函数了:
<html>
<body>
<?php
function writeMyName()
{
echo "David Yang";
}
echo "Hello world!<br />";
echo "My name is ";
writeMyName();
echo ".<br />That's right, ";
writeMyName();
echo " is my name.";
?>
</body>
</html>以上代码的输出:
Hello world!
My name is David Yang.
That's right, David Yang is my name.
缩合上面我们来写关于php函数详细教程
<?php
/*
* 1.内部函数:PHP可以在函数内部再声明函数
* 目的就是在函数内部调用
* 用来帮助外部函数完成一些子功能
*
* 2.递归函数:在自己内部调用自己的函数名
*
* 3.重用函数
*
* require:用于静态包含
* include:用于动态包含
* require_once:用于静态包含,只包含一次
* include_once:用于动态包含,只包含一次
*
* 4.一些系统函数的使用
* 资源=opendir("目录名")
* readdir(资源)
*
*
*/
//内部函数
function score($php,$java,$dotnet)
{
function php($php)
{
if($php>60)
return "及格";
else
return "不及格";
}
function java($java)
{
if($java>60)
return "及格";
else
return "不及格";
}
function dotnet($dotnet)
{
if($dotnet>60)
return "及格";
else
return "不及格 www.111cn.net/c5-03/ ";
}
$total=$php+$java+$dotnet;
$agv=$total/3;
echo "你的php成绩是{$php}分,".php($php)."<br>";
echo "你的java成绩是{$java}分,".java($java)."<br>";
echo "你的dotnet成绩是{$dotnet}分,".dotnet($dotnet)."<br>";
echo "你的总分是:{$total}<br>";
echo "你的平均分是:{$agv}<br>";
}
score(50,90,70);
//递归函数
function demo($num)
{
echo $num."<br>";
if($num>0)
demo($num-1);
else
echo "--------------------------------<br>";
echo $num."<br>";
}
demo(10);
function total($dirname,&$dirnum,&$filename)
{
$dir=opendir($dirname);
readdir($dir)."<br>";
readdir($dir)."<br>";
while($filename=readdir($dir))
{
$newfile=$dirname."/".$filename;
echo $filename."<br>";
if(is_dir($filename
}
}
$dirnum=0;
$filenum=0;
total("c:/windows",$dirnum,$filenum);
echo "目录总数:".$dirnum."<br>";
echo "文件总数:".$filenum."<br>";
?>
这两天学了写表单。总结于此,以备忘。
例子一(POST提交表单):
<form action= "chunkify.php教程" method= "POST" > |
<input type= "text" name= "word" /><br/> |
How long should be the chunks be? |
<input type= "text" name= "number" /><br /> |
<input type= "submit" value= "Chunkify" > |
$number = $_POST [ 'number' ]; |
$chunks = ceil ( strlen ( $word )/ $number ); |
echo "The $number-letter chunks of '$word' are:<br/>n" ; |
for ( $i = 0; $i < $chunks ; $i ++){ |
$chunk = substr ( $word , $i * $number , $number ); |
printf( "%d: %s<br />n" , $i +1, $chunk ); |
html显示出来的页面。
提交表单后php处理出来的页面。在这个例子中,我输入一个单词,然后给定一个长度,将单词等分成该长度的块。
演示了通过POST方法提交表单。
例子二(单选,GET接受表单):
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method= "GET" > |
Select your personality attributes:<br/> |
<option value= "perky" >perky</option> |
<option value= "morese" >morose</option> |
<option value= "thinking" >thinking</option> |
<option value= "feeling" > feeling</option> |
<option value= "thrifty" >speed-thrift</option> |
<option value= "prodigal" >shopper</option> |
<input type = "submit" name= "s" value= "Record my personality" > |
if ( array_key_exists ( 's' , $_GET )){ |
$des = implode( ' ' , $_GET [ 'att' ]); |
echo "You have a $des personality." ; |
例子三(多选,GET接受表单):
注意到此时<select name="att[]" multiple> 下划线告诉GET你传输的是个数组,黑体字部分则是表示改选择框为多选框
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method= "GET" > |
Select your personality attributes:<br/> |
<select name= "att[]" multiple> |
<option value= "perky" >perky</option> |
<option value= "morese" >morose</option> |
<option value= "thinking" >thinking</option> |
<option value= "feeling" > feeling</option> |
<option value= "thrifty" >speed-thrift</option> |
<option value= "prodigal" >shopper</option> |
<input type = "submit" name= "s" value= "Record my personality" > |
if ( array_key_exists ( 's' , $_GET )){ |
$des = implode( ' ' , $_GET [ 'att' ]); |
echo "You have a $des personality." ; |
例子四(复选框checkbox): 同样name="att[]"是告诉GET你传输的是一个数组, checked 则表示该选项为初始默认选择,同样上例,在标签内加入 selected="selected"也可以
让多选初始默认选择。
<form action= "<?php echo $_SERVER['PHP_SELF'] ?>" method= "GET" > |
Select your personality attributes:<br/> |
perky<input type= "checkbox" name= "att[]" value= "perky" checked /> <br/> |
morose<input type= "checkbox" name= "att[]" value= "morose" checked /> <br/> |
thinking<input type= "checkbox" name= "att[]" value= "thinking" /> <br/> |
feeling<input type= "checkbox" name= "att[]" value= "feeling" /> <br/> |
<input type = "submit" name= "s" value= "Record my personality" > |
if ( array_key_exists ( 's' , $_GET )){ |
if ( is_null ( $_GET [ 'att' ])) exit ; |
$des = implode( ' ' , $_GET [ 'att' ]); |
echo "You have a $des personality." ; |
例子五(单选框): 注意,同一个选项即可的单选必须name相等
<input type= "radio" checked= "checked" name= "Sex" value= "male" /> |
<input type= "radio" name= "Sex" value= "female" /> |
<input type= "radio" checked= "checked" name= "Se" value= "male" /> |
<input type= "radio" name= "Se" value= "female" /> |
<p>当用户点击一个单选按钮时,该按钮会变为选中状态,其他所有按钮会变为非选中状态。</p> |
例子六(stick form):一个表格如何要实现之前输入过的值在页面刷新后仍然存在可以如下
<form action = "<?php echo $_SERVER['PHP_SELF']; ?> " method= "POST" > |
<input type= "text" name= "fa" value= "<?php echo $f;?>" />; |
<input type= "submit" name= "Convert to Celsius" /> |
printf( "%.2lf is %.2lfC" , $f , $c ); |
都是一些简单的表单处理~
PHP中数据类型详解
四种标量类型:
boolean (布尔型)
integer (整型)
float (浮点型, 也称作 double)
string (字符串)
两种复合类型:
array (数组)
object (对象)
最后是两种特殊类型:
resource (资源)
NULL (NULL)
为了确保代码的易读性,本手册还介绍了一些伪类型:
mixed
number
callback
以及伪变量 $....
可能还会读到一些关于“双精度(double)”类型的参考。实际上 double 和 float 是相同的,由于一些历史的原因,这两个名称同时存在。
变量的类型通常不是由程序员设定的,确切地说,是由 PHP 根据该变量使用的上下文在运行时决定的。
Note: 如果想查看某个表达式的值和类型,用 var_dump()。
如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例:
<?php教程
$a_bool = TRUE; // a boolean
$a_str = "foo"; // a string
$a_str2 = 'foo'; // a string
$an_int = 12; // an integer
echo gettype($a_bool); // prints out: boolean
echo gettype($a_str); // prints out: string
// If this is an integer, increment it by four
if (is_int($an_int)) {
$an_int += 4;
}
// If $bool is a string, print it out
// (does not print out anything)
if (is_string($a_bool)) {
echo "String: $a_bool";
}
?>
如果要将一个变量强制转换为某类型,可以对其使用强制转换或者 settype() 函数。
注意变量根据其当时的类型在特定场合下会表现出不同的值。更多信息见类型戏法。此外,你还可以参考 PHP 类型比较表看不同类型相互比较的例子。
#
二、PHP的数据类型
Int zjj=100; //这种赋值是对的
Int zjj="hello,world"; //这种编译器就会提示错误
在PHP中,对变量的数据类型不需要声明,可以直接赋值。如下面的
$zjj=100; //表示zjj为整型
$zjj="hello,world" // 表示zjj为字符串型
PHP中的数据类型分成两种:一是标量数据类型,另一种就是复合数据类型。
标量数据类型有:
布尔型(boolean) 整型(integer) 浮点型(foat也叫做double)
复合数据有:
数组(array) 对象(object)
还有两种特殊的数据
资源(resource) 空值(NULL)
1、布尔型是最简单的变量,布尔变量:true和false值
要设定一个布尔变量,只需将这两个值赋给变量就行了。PHP中就算是关键字也可以做变量名。
<?php
$True="我是变量" . True; //这里有点的,书上有时印刷并没有。
echo($True);
echo("<BR>"); //起到回车的作用
echo("我是关键字" . True)
?>
执行结果:我是变量1 //这里true就是1
我是关键字1
true和false实际上是代表数值1和0,因此true在输出时显示为1,但是在给变量赋值的时候,如果赋值为1,则被当成整型,如果被赋值为true,则被当成布尔型
当转换为布尔型时,以下值被认为是false
(1)布尔值false
(2)整型值0(零)
(3)浮点型值0.0(零)
(4)空白字符串和字符串"0"
(5)没有成员变量的数组
(6)没有单元的对象(仅适用php4)
(7)特殊类型NULL
而所有其他值都被认为是TRUE包括任何资源。
2、整型
+2147483647到-2147483647
<?php
$int_D=2147483647; //十进制赋值
echo($int_D);
echo("<br>");
$int_H=0x7FFFFFFF; //十六进制赋值
echo($int_H);
echo("<br>");
$int_O=017777777777; //八进制赋值
echo($int_O);
echo("<BR>");
?>
执行结果:
2147483647
2147483647
2147483647
如果指定一个数超出了inter的范围,将会被解释为float
3、浮点型
1.7E-308到1.7E+308
<?php
$float_1=90000000000;
echo($float_1);
echo("<br>");
$float_2=9E10;
echo($float_2);
echo("<br>");
$float_3=9E+10;
echo($float_3);
?>
执行结果:
90000000000
90000000000
90000000000
4、字符串
PHP中有三种方式定义字符串
1、单引号方式。
$single_str='我是人';
如果想在浏览中输出单引号,必须在字符串中加入转义符号“”
<?
$single_str='我被单引号括起来了!<br>'; //正常输出
echo $single_str;
$single_str='输出单引号: '嘿嘿,我在单引号里面'<br>'; //加了转义符可以输出单引号
echo $single_str;
$single_str='输出双引号:"我在双引号里面"<br>'; //正常输出
print $single_str;
$single_str='输双美元符号:$'; //正常输出
print $single_str;
?>
执行结果:
我被单引号括起来了!
输出单引号: '嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输双美元符号:$
(2)、双引号方式
$Double_Str="我是人"
为了在字符串中输出各种特殊字符,可以使用转义符
$Double_Str="输出美元符号:$";
$Double_Str="输出反斜杠:";
<?
$Double_str="我被双引号括起来了!<br>";
echo $single_str;
$single_str="输出单引号:'嘿嘿,我在单引号里面'<br>"; //不需要转义符
echo $single_str;
$single_str="输出双引号:"我在双引号里面"<br>"; //需要转义符
print $single_str;
$single_str="输出美元符号:$ <br>"; //需要转义符
print $single_str;
$single_str="输出反斜杠 : <br>"; //需要转义符
print $single_str;
?>
执行结果:
输出单引号:'嘿嘿,我在单引号里面'
输出双引号:"我在双引号里面"
输出美元符号:$
输出反斜杠 :
(3)、Heredoc 方式给字符串赋值
<?
$zjj1_str =<<<zjj //=<<<这个相当于链接符,获取zjj到zjj中间的数据
你好<br>
美元符号 $ <br> //zjj1和zjj都是可以随便起名字的。
反斜杠 <br>
"我爱你"<br>
'我恨你'
zjj;
echo $zjj1_str;
?>
执行结果:
你好
美元符号 $
反斜杠
"我爱你"
'我恨你'
(4)、串中的变量
<?php
$str_1 = "我是变量的值!";
$str_2 = "str_1 : $str_1<br>"; //双引号字符串中包含变量$str_1
echo $str_2;
$str_1 = '我是变量的值';
$str_2 = 'str_1 : $str_1<br>'; //单引号中包含字符串的值
echo $str_2;
$str_1 = "我是变量的值!";
$str_2 = "str_1 : $str_12 <br>"; //引用的变量名后,多了个字符2即$str_12
echo $str_2;
$str_1 = "我是变量的值!";
$str_2 = "str_1 : ${str_1}2 <br>"; //引用的变量名后,多了个字符2即$str_12
echo $str_2;
?>
执行结果:
str_1 : 我是变量的值!
str_1 : $str_1
str_1 :
str_1 : 我是变量的值!2
从输出可以看出,双引号字符串是赋值的含义,直接输出变量的值。而单引号的字符串,包含的是变量的名称,可以理解为直接运行语句的结果,直接输出变量的名称而不是变量的值。
$str_2 = "str_1 : $str_12 <br>"; 这句如果变量后面跟着非空格的字符,会让编译器糊涂,会把$str_12当成变量,而上面又没有定义,因此会输出空值。为了解决这个问题可以用${str_1}2 或{$str_1}2 这个来表达。
使用 PHP 函数对变量 $x 进行比较
表达式 gettype() empty() is_null() isset() boolean : if($x)
$x = ""; string TRUE FALSE TRUE FALSE
$x = null; NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE
松散比较 ==
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE TRUE FALSE TRUE TRUE FALSE TRUE FALSE FALSE TRUE FALSE
FALSE FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE TRUE FALSE TRUE
1 TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE TRUE FALSE TRUE TRUE
-1 TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
"1" TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" TRUE FALSE FALSE FALSE TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE TRUE FALSE TRUE
array() FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE FALSE FALSE
"php" TRUE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE TRUE FALSE FALSE TRUE
严格比较 ===
TRUE FALSE 1 0 -1 "1" "0" "-1" NULL array() "php" ""
TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
1 FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
0 FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
-1 FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
"1" FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE FALSE
"0" FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE FALSE
"-1" FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
NULL FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE
array() FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE
"php" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE
"" FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE
php教程遍历输出数组的方法
<html>
<head>
<title>Foreach Demo</title>
</head>
<body>
<?
$list = array("A", "B", "C", "D", "E");
print "<ul>n";
foreach ($list as $value){
print " <li>$value</li>n";
} // end foreach
print "</ul>n";
?>
</body>
</html>
实例二
<?
$letters[0] = 'A';
$letters[1] = 'B';
$letters[3] = 'D';
$letters[2] = 'C';
foreach ($letters as $letter) {
print $letter;
}
?>