首先,PHP是最好的语言!
下面我们来说下PHP图像处理函数中的gd_info()函数。
PHP函数gd_info() --取得当前安装的 GD 库的信息。
下面我们来实际输出一下(以THINKPHP5.0版本为例):
示例代码返回结果是数组,共有12个序列,下面将一一介绍。
输出结果下面是每个索引的相关描述:
我article表中的记录如下,因为多个关键词存放在一个字段上,不利于做排序统计操作,例如我想要统计哪个关键词的数量最多就是个大问题了:
id keywords
1 九阳神功,万川归海,横扫千军,乾坤大挪移
2 杀破狼,落日十三剑
3 紫霞神功,葵花宝典,寒冰真气
将关键词中用中文逗号分开的,改成英文输入下的逗号
update article set keywords =(replace(keywords,',',','));
新建一个临时表,用来存放分隔后的关键词
drop table if exists temp_keys;
create temporary table temp_keys(
id int(10) primary key auto_increment,
keystr varchar(255)
);
新建一个自定义函数mysql_explode,将"独孤九剑,万剑归宗,乾坤大挪移"这样的字符串以逗号为分隔符以多条记录的形式存入数据库
等同于一下子完成了如下操作:
insert into temp_keys values(null,'独孤九剑');
insert into temp_keys values(null,'万剑归宗');
insert into temp_keys values(null,'傲寒六决');
自定义函数如下:
drop functionif exists mysql_explode;
delimiter $$
create function mysql_explode( instr varchar (255)) returns varchar (11)
begin
declare str varchar(255);
declare temp_s varchar(255);
declare pos intdefault0;
set str=instr;
while length(str)>1do
set temp_s = substring_index( str,',',1);
set pos= instr(str,',');
set str = substr( str, pos+1);
insert into temp_keys values (null,temp_s);
if(pos=0)then
set str='';
endif;
endwhile;
return'';
end $$
delimiter ;
调用一下 select mysql_explode("九阳神功,万川归海,横扫千军,乾坤大挪移");
temp_keys表中果然有了四条记录,一切ok,article表中第一条记录的关键词"九阳神功,万川归海,横扫千军,乾坤大挪移",被分开后变成四条记录存入了temp_keys表.之后的操作无非就是把我article表中每个keywords字段调用一下mysql_explode方法,当数据都打散到临时表里了,要做排序和统计直接操作临时表就行了.
说明一下:
instr() 函数 获取子串第一次出现的索引,如果没有找到,则返回0(从1开始),如果连这个函数都没有的话,那就得自己写一个获取指定字符位置的方法了,mysql自定义函数还真是奇怪,非要弄个返回值,所以上面的例子返回了空字符串,下次改良为存储过程,实现更复杂一些的功能.
本篇文章主要给大家介绍PHP中explode()函数的用法详解,希望对需要的朋友有所帮助!
explode()是PHP中的内置函数,用于将字符串拆分为不同的字符串。explode()函数基于字符串分隔符来拆分字符串,也就是说,它将字符串拆分为出自分隔符的位置。此函数返回一个数组,其中包含通过拆分原始字符串形成的字符串。
简而言之,explode()函数就是用于把字符串打散为数组。
语法说明:
array explode(separator, OriginalString, NoOfElements)
参数:
explode函数接受三个参数,其中两个是强制的,一个是可选的。
separator(分隔符):这个字符指定一个或多个临界点,即,只要在字符串中找到此字符,它就会表示数组的一个元素的结尾和另一个元素的开头。
OriginalString:要在数组中拆分的字符串。
NoOfElements:这是可选的。它用于指定数组的元素数。此参数可以是任何整数(正数,负数或零)
正(N):当此参数以正值传递时,表示该数组将包含此数量的元素。如果分隔符分隔后的元素数量大于这个值,那么前N-1个元素保持不变,最后一个元素是整个剩余的字符串。
负(N):如果负值作为参数传递,那么数组的最后N个元素将被裁剪掉,数组的其余部分将作为单个数组返回。
零:如果此参数为零,则返回的数组将只有一个元素,即整个字符串。
如果未提供此参数,则返回的数组包含使用分隔符分隔字符串后形成的元素总数。
返回类型:
explode()函数的返回类型是字符串数组。
PHP explode()函数代码示例如下:
<?php // 原始字符串 $OriginalString = "Hello, How can we help you?"; // 没有可选参数NoOfElements print_r(explode(" ",$OriginalString)); // 正的NoOfElements print_r(explode(" ",$OriginalString,3)); // 负的NoOfElements print_r(explode(" ",$OriginalString,-1)); ?>
输出:
Array([0] => Hello, [1] => How [2] => can [3] => we [4] => help [5] => you?)Array( [0] => Hello, [1] => How [2] => can we help you?)Array( [0] => Hello, [1] => How [2] => can [3] => we [4] => help)
本文来自PHP中文网,更多相关知识点请前往PHP中文网视频课程频道!
1.函数的介绍
说明:函数的作用在于对一个功能的封装,封装后在别的页码中引入并调用,可以节省代码量
语法:
function 函数名 ( [形参1][,形参2][,形参3][,形参4][,形参n]){
要封装的函数的代码;
[return 返回值];
}
2,函数的调用
说明:直接使用需要调用的函数的名即可
语法:
函数名([实参1][,实参2][,实参3][,实参4][,实参n]);
3.函数的相关细节
函数定义时的形参不是一个具体的数值,而是需要接收实参传过来的值,且形参必须是变量形参可以给默认值,且可以是多种数据类型实参就是要给函数传递数据的值。可以是具体的值。也可以是变量。实参必须和形参一一对应函数名遵循变量的定义规则。字母、下划线、数字且不能以数字开头函数名不能重复return返回值,如果写了就会返回当前要返回的值,如果没写默认返回一个1或者nullreturn可以返回多个值,即可以返回一个数组返回值必须使用一个变量到函数的调用者这个位置进行接收可以利用数组传递多个值函数的变量称为局部变量,不能在函数外使用
说明:
2.函数的调用机制
说明:
函数的调用者把实际的数据传递给函数的形参,这时候的形参只能在函数内使用函数在运行代码时会新建一个新的空间来运行函数内的代码运行代码后,如果有返回值,把结果返回给函数调用者,这时候运行的函数新的空间被销毁
图解:
引用传递
说明:有的函数可以直接使用全局变量。这时候是引用传递
案例:
未经允许不得转载:吾爱乐享 php学习之函数的认识及相关细节
本篇文章主要给大家介绍PHP stubstr()函数的用法,substr()是PHP中的内置函数,用于提取字符串的一部分,即返回字符串的子串。
语法:
substr(string_name, start_position, string_length_to_cut)
参数:
substr()函数允许三个参数,其中两个是强制的,一个是可选的。
string_name:在这个参数中,我们传递原始字符串或需要剪切或修改的字符串。这是一个强制参数。
start_position:如果 start_position是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。如果 start_position是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。这也是一个强制参数。
string_length_to_cut:此参数是可选的,为整数类型。这指的是需要从原始字符串中剪切的字符串部分的长度。如果整数是正数,则它指的是从start_position开始并从头开始提取长度。如果整数是负数,那么它指的是从start_position开始并从字符串的结尾提取长度。如果未传递此参数,则substr()函数将返回从start_position开始直到字符串结尾的字符串。
返回类型:
如果成功则返回提取的字符串部分;如果失败,返回FALSE或空字符串。
PHP substr()函数的用法示例:
<?phpfunction Substring($str){$len = strlen($str); echo substr($str, 6), "<br>"; echo substr($str, 3, $len), "<br>"; echo substr($str, -11, 11), "<br>"; echo substr($str,-11, -8), "<br>";}$str="phpAndmysql";Substring($str);
输出:
mysqlAndmysqlphpAndmysqlphp
本文来自PHP中文网,更多相关知识点请前往PHP中文网视频课程频道!
<?php
function addition ($a, $b){
echo ($a + $b), "\n";
}
$result = "addition";
$result (3,6);
?>
本节我们一起学习下php的常见函数使用。
01php的EOF(heredoc) 概念及其使用说明
php EOF(heredoc)是一种在命令行shell(如sh、csh、bash、PowerShell等)和程序语言(像Perl、php、Python和Ruby)里定义一个字符串的方法。需要注意的是,EOF是一种字符串方法。
php中的EOF使用概述:
1. EOF使用完成后必须后接分号,否则编译通不过。2. EOF 可以用任意其它字符代替,只需保证结束标志与开始标志一致(比如我们可以用html、EOS等字符串来代替EOF,但是需要保持开始和结束使用的标志符一样,且不能在正文中重复,也就是开始使用了EOF,结束的时候必须使用EOF,但是正文中不能有EOF)。3. 结束标志必须顶格独自占一行并且必须从行首开始,前后不能衔接任何空白和字符。4. 开始标志可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。5.EOF 中是会解析 html 格式内容的,并且在双引号内的内容也有转义效果6. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当于q和qq的用法。使用示例如下图:
EOF格式示例02php语言的数据类型
和其他语言一样,php语言的数据的数据类型也包含了字符串、整型、浮点型、数组、对象以及空值,类似于其他语言的对应数据类型,这些东西都是通用的,这里不再赘述。如下代码是先将字符串Hello world赋值给变量x,然后再将x变量的值变为空(null),最后使用var_dump输出x的结果(var_dump会先判断变量的类型和长度,然后输出结果。
<?php$x="Hello world!";$x=null;var_dump($x);?>
说明:var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
03PHP 类型比较
尽管 PHP 是弱类型语言,但也需要明白变量类型及它们的意义,因为我们经常需要对 PHP 变量进行比较,包含松散和严格比较。
松散比较:使用两个等号 == 比较,只比较值,不比较类型。严格比较:用三个等号 === 比较,除了比较值,也比较类型。也就是说,如果一个定义为字符串123,另一个定义为整型变量123,那么在使用"=="来进行比较的时候,这两个值是为true的,而如果使用"==="来进行比较时,那么返回值就是false了。
示例代码如下图:
类型比较示例代码04PHP 常量
常量值被定义后,在脚本的其他任何地方都不能被改变。
常量是一个简单值的标志符。该值在脚本中不能改变。一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。常量在整个脚本中都可以使用。
设置常量,常量是全局的,可以在对应的范围内使用。一般使用 define() 函数,函数语法如下:bool define (string $name , mixed $value [,bool $case_insensitive =false])
该函数有三个参数:
name:必选参数,就是你所定义的常量名称,即标志符。value:必选参数,定义的常量的值。case_insensitive :可选参数,为ture,表示该常量对大小写不敏感。默认是false(大小写敏感)。
上述就是本次为大家分享的内容,喜欢就点个赞吧,同时也希望大家多多点赞关注!
前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数!
一、函数的声明与使用
1、函数名是标识符之一,只能有数字字母下划线,开头不能是数字。
函数名的命名,须符合"小驼峰法则":myNameIsXiaoxi my_name_is_xiaoxi
函数名不区分大小写。func() Func() FUNC() 都可以
函数名不能与已有的函数名重复,不能与系统函数名重复。
2、function_exists("func1");用于检测函数是否已声明;
注意:传入的函数名,必须是字符串格式:返回结果为true/false。
二、PHP中变量的作用域
1、局部变量:声明在函数内部的变量,称为局部变量。只在函数内部能用,函数外加需使用,需在函数中使用return关键字返回。
2、全局变量:声明的函数外部的变量,称为全局变量。
3、函数中,使用变量,默认使用内部局部变量。如果,需在函数中使用全局变量,需要使用global关键字,将全局变量引用函数,才能使用。
函数中的变量名,如果与全局变量重复,global语句之上,为函数局部变量;global语句之下,为系统全局变量。
4、 $GLOBALS[]全局数组:
$GLOBALS[]数组,是PHP给我们内置的全局数组,可以直接给数组添加值,无论在函数内外声明,均可在任何地方直接使用。
$GLOBALS["a"] = 10; ---> echo $GLOBALS["a"];//任何位置直接使用
5、函数中使用全局变量,还有一种方式:通过给函数传参,可以在函数内部使用全局变量;
但是,传递以后的参数是函数的局部变量,内部改变,外部不会变。
除非,传递的参数是地址function func($a1,&$a2){} //函数内部修改a1,则全局a1不会变,函数内部修改a2,则全局a2会变。
如果函数的形参,出现了取址符号,则,调用函数时,实参必须是变量,而不能是字面量。
6、使用require与include包含不会影响作用域。
三、静态变量
1、静态变量,使用static关键字声明。static $num = 10;
2、静态变量的特点:
>>>静态变量在函数第一次加载的时候进行声明。
>>>函数使用完不会立即释放静态变量,静态变量在整个脚本执行过程中,只会声明一次。
>>>同一函数,多次调用,共享同一个静态变量。
四、函数的参数传递
1、在PHP中,涉及参数传递时:实参列表只能比形参多,
2、常规参数传递:function func($a){} func($a);
3、引用参数传递:function func(&$a){} func($a);
①通过&引用参数传递,函数内修改变量,函数外同步变化
②形参为引用参数,实参只能是变量,不能是字面量 func(10); ×
4、默认参数:function func($b,$a=10){} func(20);
//是$可以不传,默认为10;$b必须传递,否则使用时未定义报错。
如果参数中既有默认参数,也有非默认参数,那么默认参数列表
必须要在非默认参数列表后面,即调用的时候必须保证非默认列表的优先赋值。
5、可变参数列表:由于PHP实参可以比形参多,那么我们可以传递N个实参,并通过PHP内置函数取到对应参数。
var_dump(func_get_args());//取所有参数列表(数组)
var_dump(func_num_args());//返回参数的总个数相当于count(func_get_args());
var_dump(func_get_arg(0));//根据下标,返回每个参数
五、变量函数
1、将一个函数名,转为字符串后,赋给一个变量。这个变量,就是我们所说的变量函数,可以加()调用函数内容。
function func(){}--->$fun = "func";--->$func();
六、回调函数
1、使用变量函数,自定义回调函数
function func($func){$func();}--->function f(){}--->func("f");
2、使用call_user_func_array和call_user_func自定义回调函数;
两个函数的第一个参数,均为回调函数,表示执行当前回调。
不同点在于:call_user_func_array()第二个参数为数组,并将数组的每一个值赋给回调函数的参数列表,相当于JS中的apply();
而call_user_func,是将回调函数的参数列表,直接展开写到第2~多个参数中,相当于JS中的call();
eg:call_user_func_array("func",array(1,2,3));
--> func(1,2,3);
call_user_func("func",1,2,3); --> func(1,2,3);
七、匿名函数
由于变量函数,在调用时存在多种调用方(func()/$func();)
所以为了让函数的调用更为同一,才产生了匿名函数!!!
声明匿名函数,函数体后面的分号必不可少!
匿名函数本身也是变量,用var_dump();检测为Object类型
八、PHP闭包
在PHP中,子函数无法直接访问父函数的局部变量,必须使用User关键词向下传递!!!
文章收集与网络,辛苦收集转载请备注出处一只大脸猫博客!
PHP丨PHP基础知识之流程控制WHILE循环「理论篇」
PHP丨PHP基础知识之条件语IF判断「理论篇」
PHP丨PHP基础知识之条件语SWITCH判断「理论篇」
第一节 函数的分类
系统函数
php提供了丰富的系统函数,可直接使用。这些函数涵盖了软件开发的大部分功能,具体的使用方法,请查看php开发手册。除了各种功能分类清晰的函数,还有一些常用的杂项函数:
自定义函数
自定义函数命名口诀:字母数字下划线,首字母不能为数字,不会区分大小写,且不能使用关键字,不能重复来定义
PHP第二节 函数的参数
形参
形式上的参数在函数定义时声明实参
实际上的参数,在函数使用时声明实参和形参类型需一致实参和形参数量要一一对应(定义的参数必须传值,除非有默认值)形参的默认值
若某个形参的值总是固定的某一个值,可以使用默认值指定具有默认值的形参,放到参数列表后面function fun3($a,$b=20){ return $a+$b;}
有默认值的参数可以省略
fun3(10)
查看实参函数
第三节 函数的返回值
函数当中若遇到return,则会将return后方的内容返回到函数调用处进行保存return后面的语句将不再执行若函数没有任何返回,则默认返回null类型第四节 变量的作用域
局部变量
在函数内部定义,只作用于函数内部
默认情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)
$a=1;//外部变量function test($arg){$arg+=100;}
test($a);//只将外部变量的值传进去
var_dump($a) ;// 1 外部变量$a的值并没有改变
全局变量
在函数外部定义,作用于当前整个脚本,在函数内部使用需要使用global关键字声明
$a=10;//全局变量function test(){global $a; //用global引入全局变量,在函数内部使用,子函数引入父函数变量,不能使用global $a++;}test();var_dump($a); //结果:11
注意:global只能用于引入全局变量,子函数引入父函数变量,不能使用global。
引用变量传参
使用global命令,将全局变量引入到函数内部,但这种方式不够灵活,可以使用引用变量的方法:
定义变量时,用&修饰参数
$a=10;function run(&$arg){$arg++;}run($a);var_dump($a) //结果:11
静态变量
在函数内部定义,作用于函数内部,使用static关键字声明
function test(){static $a=1; //静态变量 $a++; echo $a;}test(); //2test(); //3test(); //4
echo $a; 报错 静态变量只作用于函数内部,外部无法读取
第五节 超全局变量
超全局变量
在全部作用域中始终可用的内置变量
获取 application/json的post数据
php://input 是一个流,可以读取没有处理过的POST数据(即原始数据)
$postjson = file_get_contents("php://input");
第六节 其他应用
变量函数
定义测试函数
function test(){echo 'web前端';}
将函数的名称以字符串形式存储到指定变量
$ceshi = 'test';
此时该变量可以作为函数来使用,使用规则和函数一致
$ceshi();
应用于回调函数
function play(){echo "play";}function run($fn){ $fn();};
run("play");//将回调函数名作为字符串传入
递归
回文数递归(recursion)函数
function recursion($num){echo $num; //判断 if($num>1){ recursion($num-1); } echo $num;}
调用函数
recursion(3); //结果:3 2 1 1 2 3
掌握知识点1,2在上一篇文章已经介绍过了,现在我们从第三个知识点来讲吧!
不仅仅是码农1.Array 函数2.Calendar 函数3.cURL 函数4.Date 函数5.Directory 函数6.Error 函数7.Filesystem 函数8.Filter 函数9.FTP 函数10.HTTP 函数11.LibXML 函数12.Mail 函数13.Math 函数14.Misc 函数15.MySQLi 函数16.SimpleXML 函数17.String 函数18.XML Parser 函数19.Zip 函数
PHP cURL 函数
概述PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。PHP中使用cURL实现Get和Post请求的方法这些函数在PHP 4.0.2中被引入。需求为了使用PHP的cURL函数,你需要安装 libcurl包。PHP需要使用libcurl 7.0.2-beta 或者更高版本。在PHP 4.2.3 里使用cURL,你需要安装7.9.0或更高版本的libcurl。从PHP 4.3.0开始你需要安装7.9.0或更高版本的libcurl。从PHP 5.0.0开始你需要安装7.10.5或更高版本的libcurl。安装要使用PHP的cURL支持你必须在编译PHP时加上--with-curl[=DIR] 选项,DIR为包含lib和include的目录路径。在include目录中必须有一个名为curl,包含了easy.h和curl.h的文件夹。lib文件夹里应该有一个名为libcurl.a的文件。对于PHP 4.3.0你可以配置--with-curlwrappers 使cURL使用URL流。注意: Win32用户注意 要在Windows环境下使用这个模块,libeay32.dll和ssleay32.dll必须放到PATH环境变量包含的目录下。 不用cURL网站上的libcurl.dll。资源类型这个扩展定义了2中资源:cURL句柄和cURL批处理句柄。PHP cURL 函数以下包含了PHP cURL函数列表: