function addNum($num1){
$num1 = $num1◆10;
}
addNum($num)
echo $num;
若是用来记录错误的话 set_error_handler 来自方错误函数收集错误信息
set_error_handler('php_error', E_ALL); //函数名,收集的错误级别
function php_error($errno, $errstr, $errfile, $errline){ //错误编号,错误信息,错误文件,错误行号
$errortype = array(
E_ERROR = 'Error',
E_WARNING = 'Warning',
E_PARSE = 'Parse',
E_NOTICE = 'Notice',
E_STRICT = 'Runtime Notice',
E_CORE_ERROR = 'Core Error',
E_CORE_WARNING = 'Core Warning',
E_COMPILE_ERROR = 'Compile Error',
E_COMPILE_WARNING = 'Compile Warning',
E_USER_ERROR = 'User Error',
E_USER_WARNING = 'User Warning',
E_USER_NOTICE = 'User Notice'
);
echo "b$errortype[$errno]: /b $errstr br/\nbFile ($errline):/b $errfile br\n"; //输出错误信息
#######?基本的数据结构?########
//二分查找(数组里查找某个元素)
function?bin_sch($array,?$low,?$high,?$k){?
if?($low?=?$high){?
if?($array[$mid]?==?$k){?
return?$mid;?
}elseif?($k?$array[$mid]){?
return?bin_sch($array,?$low,?$mid-1,?$k);?
}else{?
return?bin_sch($array,?$mid◆1,?$high,?$k);?
}?
return?-1;?
//线性表的删除(数组中实现)
function?delete_array_element($array,?$i)
{
$len?=?count($array);?
for?($j=$i;?$j$len;?$j◆◆){
$array[$j]?=?$array[$j◆1];
array_pop($array);
return?$array;
//冒泡排序(数组排序)
function?bubble_sort($array)
$count?=?count($array);
if?($count?=?0)?return?false;
for($i=0;?$i$count;?$i◆◆){
for($j=$count-1;?$j$i;?$j--){
if?($array[$j]?$array[$j-1]){
$tmp?=?$array[$j];
$array[$j]?=?$array[$j-1];
$array[$j-1]?=?$tmp;
//快速排序(数组排序)
function?quicksort($array)?{
if?(count($array)?=?1)?return?$array;
$key?=?$array[0];
$left_arr?=?array();
$right_arr?=?array();
for?($i=1;?$icount($array);?$i◆◆){
if?($array[$i]?=?$key)
$left_arr[]?=?$array[$i];
else
$right_arr[]?=?$array[$i];
$left_arr?=?quicksort($left_arr);
$right_arr?=?quicksort($right_arr);
return?array_merge($left_arr,?array($key),?$right_arr);
#######?自实现函数?#######
//插入一段字符串
function?str_insert($str,?$i,?$substr)
for($j=0;?$j$i;?$j◆◆){
$startstr?.=?$str[$j];
for?($j=$i;?$jstrlen($str);?$j◆◆){
$laststr?.=?$str[$j];
$str?=?($startstr?.?$substr?.?$laststr);
return?$str;
//删除一段字符串
function?str_delete($str,?$i,?$j)
for?($c=0;?$c$i;?$c◆◆){
$startstr?.=?$str[$c];
for?($c=($i◆$j);?$cstrlen($str);?$c◆◆){
$laststr?.=?$str[$c];
$str?=?($startstr?.?$laststr);
//复制字符串
for?($i=0;?$istrlen($s1);?$i◆◆){
//连接字符串
$newstr?=?$s1;
for($i=0;?$icount($s);?$i◆◆){
$newstr?.=?$st[$i];
return?$newsstr;
//简单编码函数(与php_decode函数对应)
function?php_encode($str)
for($i=0;?$istrlen($str);?$i◆◆){
$c?=?ord($str[$i]);
$word?=?chr($c);
$s?.=?$word;
return?$s;?
//简单解码函数(与php_encode函数对应)
function?php_decode($str)
$c?=?ord($word);
//简单加密函数(与php_decrypt函数对应)
function?php_encrypt($str)
if?(strlen($str)?==?0)?return?false;
for?($i=0;?$istrlen($str);?$i◆◆){
for?($j=0;?$jstrlen($encrypt_key);?$j◆◆){
if?($str[$i]?==?$encrypt_key[$j]){
$enstr?.=?$decrypt_key[$j];
break;
return?$enstr;
//简单解密函数(与php_encrypt函数对应)
function?php_decrypt($str)
for?($j=0;?$jstrlen($decrypt_key);?$j◆◆){
if?($str[$i]?==?$decrypt_key[$j]){
$enstr?.=?$encrypt_key[$j];
到此为止吧:)
outPut函数 默认$newName 参数为空,也就是说调用outPut时可以不传第三个参数
那么执行的时候就是imagejpeg($img); 如果传了第三个参数 那么if条件语句就判断不通过,那么将会执行imagejpeg($img,$newName)
imagejpeg函数有第二个参数的时候 是将img指定输出到第二个参数所指定的文件名,
如果没有第二个参数,默认输出到浏览器
PHP基础
Author:陈庆平 (Andych)
第一段:PHP入门
第二段:PHP变量
①.、php变量的命名
变量由字母,数字,下划线组成
①.)变量名区分大小写
$stu_name;
$stu_name,$stu_age;
isset() 判断变量是否设置,返回true或false
define("",常量值)
defined() 判断常量是否设置,返回true 或 false
第三段:PHP数据类型
变量的数据类型
①.)布尔型(boolean)
算术运算符
逻辑运算符
比较运算符
赋值运算符
加一/减一运算符
第四段:运算符
三元运算符
$c = $a$b ? "good":"bad"
第一段:PHP流程控制语句
①.、分支结构
格式1:
if语句
if(条件)
语句集;
if(条件){
}else{
If(条件1)
语句集1;
多分支结构:
switch语句
格式:
switch(表达式)
{ case 常量: 语句;break;
..........
default: 语句;break;
While循环
While(表达式)
for循环
break 和 continue 语句
break 强行终止当前循环
continue 终止当前执行语句,继续执行循环
的下一句
PHP
Author: 陈庆平(Andych)
数组
分类: 枚举数组、关联数组和多维数组
枚举数组:下标为整数的数组
例如:$stu[1] = " 张三"
关联数组:用字符串做为下标的数组
例如:$stu["name"] = " 张三"
数组初始化
$stu[] = "name"
$stu[] = "sex"
注意:数组下表不需要按顺序分配
例题:排序数组元素(任意10 个数排
序)
使用array 函数
例如:
$stu = array("james","jack","Toms")
数组的起始下标可以不从0 开始
$arr = array["name"="james","sex"="boy"]
数组的应用
①. 、unset() 删除数组元素
unset($arr) 删除整个数组
unset($arr[0]) 删除单个数组元素
foreach($arr as $value)
输出数组中的元素
foreach($arr as $key=$value)
输出数组中的下标和元素
each() 返回数组中当前的键/值对并
将数组指针向前移动一步
user","Toms","Andych");
$foo = each($arr);
print_r($foo);
结果:
list() 把数组中的值赋给一些变量
如:list($var) = $arr
注意:list 函数仅用于数组下标从0 开始
的数组
current() 返回数组中当前元素
如:current($arr)
next() 将数组的指针移到下一个元素上
如:next($arr)
prev() 将数组的指针移到上一个元素上
如:prev($arr)
range() 自动生成一个包含指定范围单元的
数据
count() 统计数组中元素个数
如:count($arr)
array_count_values() 统计数组中相同
元素的个数
PHP 函数
函数
独立完成特定功能的代码块
内置函数
①. 、echo() 输出一个或多个字符串
如:echo " 程序设计基础"
如:print("PHP 程序设计")
用法同echo
注意:
Print start
// 任意行文字,可以包含HTML 代码
start;
输出任意行字符串
如:include("a.php")
include包含的文件中return语句的使用
$b = include("a.php");
If($b=="ok")
echo "File is Ok";
a.php文件
return "ok"?
注意:在包含文件中函数执行到return将会终止.
如:require("a.php")
功能同include方法一样
用户自定义函数
①.、函数声明
Function func_name($args)
//函数体
关键字含义:
function:用于声明自定义函数的关键字
Func_name:声明的函数名
$args:参数名称
①.、定义无参函数
function fun()
Echo "定义无参数函数";
(1 )按值传递
$num = 100;
Function func($a)
$a = $a*10;
Func($num)
Function func($b)
$b = $b ◆ 10;
Func($sum);
修改如下参数php.ini
allow_call_time_pass_reference = on
function func($a,$num=100)
return $a*$num;
注意:尽量不要将默认值参数定义在第一个参数
位置,容易造成定义默认值实效
return value;
返回函数的内容
如果一个变量名后有括号,PHP 则搜索与变
量值相同的函数.并且执行它
Function foo()
Echo " 执行func() 函数" ;
$func = 'foo';
$func(); // 变量函数
显示结果:执行func() 函数
变量的作用域
①. 、global 语句
该语句允许从脚本的任何位置访问函数内部
定义的变量以及从函数内部访问函数外部的
变量
function foo()
global $a;
echo $a;
$func = "foo";
$func();
静态变量仅在局部函数中存在,当程序
离开该函数时,它值不会丢失
$a = 0;
$a ◆◆;
foo(); //0
static $a = 0;
foo(); // 1
日期和时间的处理
获取日期和时间
date() 按指定格式返回系统的时间字符串
如:date("d") 返回月份中的第几天
a - "am" 或是 "pm"
A - "AM" 或是 "PM"
D - 星期几,三个英文字母; 如: "Fri"
F - 月份,英文全名; 如: "January"
l - 星期几,英文全名; 如: "Friday"
M - 月份,三个英文字母; 如: "Jan"
S - 字尾加英文序数,二个英文字母; 如: "th" ,"nd"
U - 总秒数
<
PHP 正则表达式
正则表达式
正则表达式是一种可以用于模式 匹配和替换的强有力的工具.
正则表达式可以让用户通过使用一系列的特殊字符构建匹配模
式,然后把匹配模式与数据文件、程序输入以及WEB 页面的表单输
入等目标对象进行比较,根据比较对象中是否包含匹配模式,执
行相应的程序.
例: ^http 表示匹配以http 开头的所有字符
[a-z] 匹配所有小写字符
abc 匹配字符串abc
正则表达式的元字符
匹配正则表达式模式
preg_match(pattern,subject)
表示在subject字符串中搜索与pattern给出的正则表达式相匹配的
内容.该函数返回pattern所匹配的次数(0次或1次).0次表示没有匹配
结果,函数返回一个false
例如:
$str = "php is a good language";
preg_match("/php/",$str);
模式,是正规表达式最基本的元素,它们是一组描述字符串特
征的字符.模式可以很简单,由普通的字符串组成,也可以非常
复杂,往往用特殊的字符表示一个范围内的字符重复出现,或表
示上下文.我们先看一些正则表达式中的特殊字符.
字符: ^
意义:表示匹配的字符必须在最前边.
preg_match(/^A/,"A good language") // 匹配成功
字符: $
意义:与^ 类似,匹配最末的字符.
preg_match(/t$/,"eat") // 匹配成功
字符*
意义:匹配* 前面的字符0 次或n 次.
例如: preg_match("/do*g/","doog") // 匹配成功
字符◆
意义:匹配◆ 号前面的字符1 次或n 次.等价于{ 1, } .
例如:preg_match("/do◆g","dg") // 不匹配
字符?
意义:匹配? 前面的字符0 次或1 次.
例如:preg_match("/do?g/","dg") // 匹配
字符.
意义:( 小数点) 匹配除换行符外的所有单个的字符.
例如:/.n/ 匹配"nay, an" 中的'an' ,但不匹配'nay' .
字符(x)
意义:匹配'x' 并记录匹配的值.
例如:/(foo)/ 匹配和记录"foo bar." 中的'foo' .匹配子串能被结果数组中的素[1], ...,[n] 返回
字符x│y
意义:匹配'x' 或者'y' .
例如:/green│red/ 匹配"green apple" 中的'green' 和"red apple." 中的'red' .
字符{ n }
意义:这里的n是一个正整数.匹配前面的n个字符.
字符{ n, }
意义:这里的n是一个正整数.匹配至少n个前面的字符.
字符{ n,m }
意义:这里的n和m都是正整数.匹配至少n个最多m个前面的字符.
字符[xyz]
意义:一字符列表,匹配列出中的任一字符.你可以通过连字符- 指出一个字符范围.
例如:[abcd] 跟[a-d] 一样.它们匹配"brisket" 中的'b' 和"ache" 中的'a','c' .
字符[^xyz]
意义:一字符补集,也就是说,它匹配除了列出的字符外的所有东西. 你可以使用连字符- 指出一 字符范围.
例如:[^abc] 和[^a-c] 等价,它们最早匹配"brisket" 中的'r' 和"chop." 中的'h' .
字符 空格
意义:匹配一个空格( 不要与b 混淆)
预定义字符和字符类
\d 数字
\D 非数字
\w 单词字符
\W 非单词字符
表示匹配一个非单词字符
字符\b
意义:匹配一个单词的分界线,比如一个空格( 不要与空格混淆)
例如:/\bno/ 匹配"noonday" 中的'no' ,/ly\b/ 匹配"possibly yesterday." 中的'ly' .
PHP 字符串
格式化字符串
①. 、trim() 删除字符串开始和结束位置的空格
格式:trim(str)
格式:ltrim(str)
格式:rtrim(str)
格式:strtolower(str)
格式:strtoupper(str)
格式:ucfirst(str)
格式:ucwords(str)
HTML 文本格式输出
str 中包含\n
格式:htmlspecialchars(str,quote_style)
str:要转换的字符
quote_style:转换方式,主要对单引号和双引
号进行转换.值如下:
ENT_COMPAT 双引号被转换
ENT_QUOTES 单引号和双引号都被转换
ENT_NOQUOTES 任何一个引号都不被转换
主要用在防止恶意脚本注入和数据库数据的存储
格式:strip_tags(str,[char])
str :要去除的字符串
char :要保留字符串
如:strip_tags("a href=''new/a",a)
和数据库相关
①. 、addslashes() 按照一定规则将字符串进行转义
格式:addslashes($str)
如:addslashes("Hello ,'jack'")
结果:Hello,\'jack\'
magic_quotes_gpc = On 自动对 get post cookie
的内容进行转义
get_magic_quotes_gpc ()检测是否打开
magic_quotes_gpc
格式:stripslashes($str)
字符串的连接和分割
①. 、explode() 按指定分割符将字符串分开
格式:explode(str,$str[,limit])
str :分割符
$str :要分割的字符串
limit :分割后数组长度(可选)
成一个字符串
格式:implode(str,$arr)
str :连接符
$arr :字符串数组
注意:implode() 函数有个别名函数join
格式:strtok($str,str)
注意:若想输出所有内容,则以后函数中不需
要再加$str了.
如:$str = aa@a.com;bb@a.com;cc@a.com
$newstr = strtok($str,";")
while($newstr )
echo $newstr;
$newstr = strtok(";")
串.
格式:substr($str,start[,length])
$str :指定的字符串
strat :起始位置
length :取出的字符串的长度.该参数可选
字符串比较
①. 、strcmp() 字符串比较, 返回值为0 ,正数和负数
注意:比较的字符串是区分大小写的
小写
字符串查找
①. 、strstr() 在指定的字符串中查找指定的字符
$domain = strstr($email,"@");
注意:如果含有多个,则从第一次出现的位置
开始输出,若没有则返回FALSE
用处:取路径中文件名
$path = "c:\\a\\b\\aa\\a.html";
$filename = strrchr($path,"\\");
echo $ filename;
定位字符串
①. 、strpos() 在指定的字符串中查找子字符串第
一次出现的位置,找不到返回false
如:echo strpos("Hello","l")
出现的位置
字符串替换
①.、str_replace() 将新的字符串替换目标字符串
中指定的字符串
格式:str_replace($search,$replace,$subject)
如:
$subject = "Hell jack";
echo str_replace("Hell","Hello:",$subject);
$search:要被替换的字符串
$replace:替换的字符串
$subject:目标字符串
格式:substr_replace($Str,$rep,$start[,length])
$str :原始字符串
$rep :替换后的新字符串
$start :起始位置
$length :替换的长度,该项可选
如:$subject = "Hell jack";
echo substr_replace($subject,"Hell",1);
// 结果:HHell
PHP函数
Author:陈庆平(Andych)
①.、定义
①.)无须在引用函数之前定义
①.、echo()函数
功能:输出一行字符串
格式:echo "字符串";
格式:print "字符串";
功能:包含并运行指定的文件 .
格式:include "a.php";
说明:如果上面的函数用在条件语句中,一定要写在{}内.
被包含的文件中可以使用return 语句.
If($a==$b)
include "a.php";
include "b.php";
自定义函数
格式:
根据函数是否包含参数:无参函数 和 有参函数
例:定义函数,计算100以内偶数之和
function func_sum()
$sum = 0;
for($a=0;$a=100;$a◆◆)
func_sum(); //调用函数
①.)按值传递
例:写一函数,求任何两个数的和
function func_name($a,$b)
$sum = $a ◆ $b;
echo $sum;
$myNum = 100;
function func_mul($a)
func_mul($myNum); //函数调用,带地址符号
echo $myNum;
低版本不默认支持地址传递,修改如下参数php.ini
定义函数时,给参数赋值;在调用函数若不指定参数内容,
则自动调用参数默认值.
例:
function func_def($style="默认值")
echo $style;
func_def(); //不带参数,输出 "默认值"
func_def("赋给参数"); //给参数,输出 "赋给参数"
功能: 函数返回值
格式: return "值"
function func_returnval()
return "return value";
以上就是土嘎嘎小编为大家整理的php常用自定义函数收集相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!