导航:首页 > 编程语言 > php函数编程

php函数编程

发布时间:2022-08-31 11:25:44

php处理数组常用的几个函数

一、数组操作的基本函数
数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr); 获得数组的键名
array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr); 在数组中检索apple
array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr); 检索给定的键名是否存在数组中
isset($arr[apple]): 检索给定的键名是否存在数组中
数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
key($arr); 返回数组中当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一个单元
reset($arr; 将数组中的内部指针指向第一个单元
each($arr); 将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr); 获得数组当前元素的键名和值
数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组
二、数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon")); 可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除
分割多个数组
array_chunk($arr,3,TRUE); 可以将一个数组分割成多个,TRUE为保留原数组的键名
数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度
三、数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈)
四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素
五、回调函数
array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function"); 使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_rece($arr,"function","*"); 转化为单值函数(*为数组的第一个值)
六、数组的排序
通过元素值对数组排序
sort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序
通过键名对数组排序
ksort($arr); 按照键名正序排序
krsort($arr); 按照键名逆序排序
uksort($arr,"function"); 使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
自然排序法排序
natsort($arr); 自然排序(忽略键名)
natcasesort($arr); 自然排序(忽略大小写,忽略键名)
七、数组的计算
数组元素的求和
array_sum($arr); 对数组内部的所有元素做求和运算
数组的合并
array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2; 对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2); 递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组 具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面
数组的差集
array_diff($arr1,$arr2); 返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较
数组的交集
array_intersect($arr1,$arr2); 返回交集结果数组
array_intersect_assoc($arr1,$arr2); 返回交集结果数组,键名也做比较
八、其他的数组函数
range(0,12); 创建一个包含指定范围单元的数组
array_unique($arr); 移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2); 从数组中随机取出一个或 多个元素
shuffle($arr); 将数组的顺序打乱
求课吧有很多关于PHP编程方面的教程

㈡ php调用自定义函数

PHP代码call_user_func函数类似于一种特别的调用函数的方法,使用方法如下:
function
a($b,$c)
{
echo
$b;
echo
$c;
}
call_user_func('a',
"111","222");
call_user_func('a',
"333","444");
//显示
111
222
333
444
?>
调用类内部的方法比较奇怪,居然用的是array,不知道开发者是如何考虑的,当然省去了new,也是满有新意的:
class
a
{
function
b($c)
{
echo
$c;
}
}
call_user_func(array("a",
"b"),"111");
//显示
111
?>
call_user_func_array函数和call_user_func很相似,只不过是换了一种方式传递了参数,让参数的结构更清晰:
function
a($b,
$c)
{
echo
$b;
echo
$c;
}
call_user_func_array('a',
array("111",
"222"));
//显示
111
222
?>
call_user_func_array函数也可以调用类内部的方法的
Class
ClassA
{
function
bc($b,
$c)
{
$bc
=
$b
+
$c;
echo
$bc;
}
}
call_user_func_array(array('ClassA','bc'),
array("111",
"222"));
//显示
333
?>
call_user_func函数和call_user_func_array函数都支持引用,这让他们和普通的函数调用更趋于功能一致:
function
a($b)
{
$b++;
}
$c
=
0;
call_user_func('a',
$c);
echo
$c;//显示
1
call_user_func_array('a',
array($c));
echo
$c;//显示
2
另:call_user_func函数和call_user_func_array函数都支持引用。
?phpfunction
increment(&$var){
$var++;}$a
=
0;call_user_func('increment',
$a);echo
$a;
//
0call_user_func_array('increment',
array(&$a));
//
You
can
use
this
insteadecho
$a;
//
1?

㈢ php引用函数的使用方法

php引用函数的使用方法

在技术学习的道路上,能掌握一些有用的技巧,对于初学者是非常有帮助的,下面是php引用函数的使用方法,希望大家会喜欢。

1.不要在你的应用程序中gzip输出,让apache来做

考虑使用ob_gzhandler?不,别这样做。它没有任何意义。PHP应该是来写应用程序的。不要担心PHP中有关如何优化在服务器和浏览器之间传输的数据。

使用apache mod_gzip/mod_deflate通过.htaccess文件压缩内容。

2.从php echo javascript代码时使用json_encode

有些时候一些JavaScript代码是从php动态生成的。

$images = array( 'myself.png' , 'friends.png' , 'colleagues.png');

$js_code = '';foreach($images as $image)

{

$js_code .= "'$image' ,";

}

$js_code = 'var images = [' . $js_code . ']; ';echo $js_code;//Output is var images = ['myself.png' ,'friends.png' ,'colleagues.png' ,];

放聪明点。使用json_encode:

$images = array( 'myself.png' , 'friends.png' , 'colleagues.png');

$js_code = 'var images = ' . json_encode($images);

echo $js_code;//Output is : var images = ["myself.png","friends.png","colleagues.png"]

这不是很整洁?

3.在写入任何文件之前检查目录是否可写

在写入或保存任何文件之前,请务必要检查该目录是否是可写的,如果不可写的话,会闪烁错误消息。这将节省你大量的“调试”时间。当你工作于Linux时,权限是必须要处理的,并且会有很多很多的权限问题时,当目录不可写,文件无法读取等的时候。

请确保你的应用程序尽可能智能化,并在最短的时间内报告最重要的信息。

$contents = "All the content";

$file_path = "/var/www/project/content.txt";

file_put_contents($file_path , $contents);

这完全正确。但有一些间接的问题。file_put_contents可能会因为一些原因而失败:

父目录不存在

目录存在,但不可写

锁定文件用于写入?

因此,在写入文件之前最好能够一切都弄明确。

$contents = "All the content";

$dir = '/var/www/project';

$file_path = $dir . "/content.txt";if(is_writable($dir))

{

file_put_contents($file_path , $contents);

}else{ die("Directory $dir is not writable, or does not exist. Please check");

}

通过这样做,你就能得到哪里文件写入失败以及为什么失败的准确信息。

4.改变应用程序创建的文件的权限

当在Linux环境下工作时,权限处理会浪费你很多时间。因此,只要你的php应用程序创建了一些文件,那就应该修改它们的权限以确保它们在外面“平易近人”。否则,例如,文件是由“php”用户创建的,而你作为一个不同的用户,系统就不会让你访问或打开文件,然后你必须努力获得root权限,更改文件权限等等。

// Read and write for owner, read for everybody elsechmod("/somedir/somefile", 0644);// Everything for owner, read and execute for otherschmod("/somedir/somefile", 0755);

5.不要检查提交按钮值来检查表单提交

if($_POST['submit'] == 'Save')

{ //Save the things}

以上代码在大多数时候是正确的,除了应用程序使用多语言的情况。然后“Save”可以是很多不同的东西。那么你该如何再做比较?所以不能依靠提交按钮的值。相反,使用这个:

if( $_SERVER['REQUEST_METHOD'] == 'POST' and isset($_POST['submit']) )

{ //Save the things}

现在你就可以摆脱提交按钮的值了。

6.在函数中总是有相同值的地方使用静态变量

//Delay for some timefunction delay(){

$sync_delay = get_option('sync_delay'); echo "

Delaying for $sync_delay seconds...";

sleep($sync_delay); echo "Done

";

}

相反,使用静态变量:

//Delay for some timefunction delay(){ static $sync_delay = null; if($sync_delay == null)

{

$sync_delay = get_option('sync_delay');

} echo "

Delaying for $sync_delay seconds...";

sleep($sync_delay); echo "Done

";

}

7.不要直接使用$ _SESSION变量

一些简单的例子是:

$_SESSION['username'] = $username;

$username = $_SESSION['username'];

但是这有一个问题。如果你正在相同域中运行多个应用程序,会话变量会发生冲突。2个不同的应用程序在会话变量中可能会设置相同的键名。举个例子,一个相同域的前端门户和后台管理应用程序。

因此,用包装函数使用应用程序特定键:

define('APP_ID' , 'abc_corp_ecommerce');//Function to get a session variablefunction session_get($key){

$k = APP_ID . '.' . $key; if(isset($_SESSION[$k]))

{ return $_SESSION[$k];

} return false;

}//Function set the session variablefunction session_set($key , $value){

$k = APP_ID . '.' . $key;

$_SESSION[$k] = $value; return true;

}

8.封装实用辅助函数到一个类中

所以,你必须在一个文件中有很多实用函数:

function utility_a(){ //This function does a utility thing like string processing}function utility_b(){ //This function does nother utility thing like database processing}function utility_c(){ //This function is ...}

自由地在应用程序中使用函数。那么你或许想要将它们包装成一个类作为静态函数:

class Utility{ public static function utility_a()

{

} public static function utility_b()

{

} public static function utility_c()

{

}

}//and call them as $a = Utility::utility_a();

$b = Utility::utility_b();

这里你可以得到的一个明显好处是,如果php有相似名称的内置函数,那么名称不会发生冲突。

从另一个角度看,你可以在相同的应用程序中保持多个版本的相同类,而不会发生任何冲突。因为它被封装了,就是这样。

9.一些傻瓜式技巧

使用echo代替print

使用str_replace代替preg_replace,除非你确定需要它

不要使用short tags

对于简单的'字符串使用单引号代替双引号

在header重定向之后要记得做一个exit

千万不要把函数调用放到for循环控制行中。

isset比strlen快

正确和一致地格式化你的代码

不要丢失循环或if-else块的括号。

不要写这样的代码:

if($a == true) $a_count++;

这绝对是一种浪费。

这样写

if($a == true)

{

$a_count++;

}

不要通过吃掉语法缩短你的代码。而是要让你的逻辑更简短。使用具有代码高亮功能的文本编辑器。代码高亮有助于减少错误。

10. 使用array_map快速处理数组

比方说,你要trim一个数组的所有元素。新手会这样做:

foreach($arr as $c => $v)

{

$arr[$c] = trim($v);

}

但它可以使用array_map变得更整洁:

$arr = array_map('trim' , $arr);

这适用于trim数组$arr的所有元素。另一个类似的函数是array_walk。

11.使用php过滤器验证数据

你是不是使用正则表达式来验证如电子邮件,IP地址等值?是的,每个人都是这样做的。现在,让我们试试一个不同的东西,那就是过滤器。

php过滤器扩展程序将提供简单的方法来有效验证或校验值。

12.强制类型检查

$amount = intval( $_GET['amount'] );

$rate = (int) $_GET['rate'];

这是一种好习惯。

13.使用set_error_handler()将Php错误写入到文件

set_error_handler()可以用来设置自定义的错误处理程序。在文件中编写一些重要的错误用于日志是个好主意。

14.小心处理大型数组

大型的数组或字符串,如果一个变量保存了一些规模非常大的东西,那么要小心处理。常见错误是创建副本,然后耗尽内存,并得到内存溢出的致命错误:

$db_records_in_array_format; //This is a big array holding 1000 rows from a table each having 20 columns , every row is atleast 100 bytes , so total 1000 * 20 * 100 = 2MB$cc = $db_records_in_array_format; //2MB moresome_function($cc); //Another 2MB ?

当导入csv文件或导出表到csv文件时,上面这样的代码很常见。

像上面这样做可能经常会由于内存限制而让脚本崩溃。对于小规模的变量它不会出现问题,但当处理大型数组时一定要对此加以避免。

考虑通过引用传递它们,或者将它们存储在一个类变量中:

$a = get_large_array();

pass_to_function(&$a);

这样一来,相同的变量(并非其副本)将用于该函数。

class A{ function first()

{ $this->a = get_large_array(); $this->pass_to_function();

} function pass_to_function()

{ //process $this->a

}

}

尽快复原它们,这样内存就能被释放,并且脚本的其余部分就能放松。

下面是关于如何通过引用来赋值从而节省内存的一个简单示例。

<?phpini_set('display_errors' , true);

error_reporting(E_ALL);

$a = array();for($i = 0; $i < 100000 ; $i++)

{

$a[$i] = 'A'.$i;

}echo 'Memory usage in MB : '. memory_get_usage() / 1000000 . '

';

$b = $a;

$b[0] = 'B';echo 'Memory usage in MB after 1st : '. memory_get_usage() / 1000000 . '

';

$c = $a;

$c[0] = 'B';echo 'Memory usage in MB after 2st : '. memory_get_usage() / 1000000 . '

';

$d =& $a;

$d[0] = 'B';echo 'Memory usage in MB after 3st (reference) : '. memory_get_usage() / 1000000 . '

';

一个典型php 5.4机器上的输出是:

Memory usage in MB : 18.08208Memory usage in MB after 1st : 27.930944Memory usage in MB after 2st : 37.779808Memory usage in MB after 3st (reference) : 37.779864

因此可以看出,内存被保存在第3份通过引用的副本中。否则,在所有普通副本中内存将被越来越多地使用。

15.在整个脚本中使用单一的数据库连接

请确保你在整个脚本使用单一的数据库连接。从一开始就打开连接,使用至结束,并在结束时关闭它。不要像这样在函数内打开连接:

function add_to_cart(){

$db = new Database();

$db->query("INSERT INTO cart .....");

}function empty_cart(){

$db = new Database();

$db->query("DELETE FROM cart .....");

}

有多个连接也不好,会因为每个连接都需要时间来创建和使用更多的内存,而导致执行减缓。

在特殊情况下。例如数据库连接,可以使用单例模式。

;

㈣ 在PHP中如何正确创建函数

Step 1 =>

php的扩展模块都放在 ext/ 目录下,比如说 snmp模块、mysql模块。 我们要建立自己的模块,就要在ext目录下为自己的模块建一个目录。比如,我们要做一个分析config文件的模块,命名为pconfig模块(parse config的简写),需在ext下建立目录pconfig。将我写好的7个文件到该目录下,另外需对主目录下的configure和internal_functions.c作一些修改。

Step 2 =>

Makefile.am Makefile.in

是模板文件,用户执行configure时,会调用这两个文件,生成编译时所用的Makefile文件。修改时将小写的pconfig换成你自己的模块名,别忘了把大写的PCONFIG也替换掉(不要告诉我你不会vi的替换语句)。config.m4也是执行configure将会调用的检测脚本程序,以后我们来讨论这些脚本程序的更深入的修改。现在你只需要把pconfig该成你的模块就可以了。对config.h.stub和setup.stub也如法炮制。其实setup.stub也没什么用。

Step 3 =>

php3-pconfig.h 头文件中

extern php3_mole_entry pconfig_mole_entry;

#define pconfig_mole_ptr &pconfig_mole_entry

#define phpext_pconfig_ptr pconfig_mole_ptr

这几行定义了模块的入口,将入口注册到php后,php会通过模块入口找到你写的函数

下面几个函数定义是用宏进行定义的,展开以后其实就是 php3_minit_pconfig , php3_rinit_pconfig ……分别在你的模块初试化或结束时被调用,如果你的模块很简单,也就不需要这些定义了

extern PHP_MINIT_FUNCTION(pconfig);

extern PHP_RINIT_FUNCTION(pconfig);

extern PHP_MSHUTDOWN_FUNCTION(pconfig);

PHP_MINFO_FUNCTION(pconfig);

这是你的函数声明,将来写在php脚本语句中的函数名就是在PHP_FUNCTION中定义的名字。

PHP_FUNCTION(pconfig_test);

如果有多个,还可以继续往下加

PHP_FUNCTION(pconfig_parsefile);

PHP_FUNCTION(pconfig_release); …….

Step 4 =>

接下来我们看最重点的C代码了

function_entry pconfig_functions[] = {

PHP_FE(pconfig_test, NULL)

{NULL, NULL, NULL}

};

定义的是你的函数的入口(前面我们提到过模块的入口),按照格式将你在头文件中定义的函数写进去吧。注意,这是用宏定义的,不要管语法是否正确。以后我们具体讨论这些宏的用法。

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, PHP_MINIT(pconfig), PHP_MSHUTDOWN(pconfig), PHP_RINIT(pconfig), NULL, PHP_MINFO(pconfig), STANDARD_MODULE_PROPERTIES

};

注册模块的入口信息,比如模块名,函数接口,初试化模块将调用的函数等等,如果你的模块不执行复杂操作的话,可以忽略掉他们,写成

php3_mole_entry pconfig_mole_entry = {

"pconfig", pconfig_functions, NULL,NULL,NULL,NULL,NULL,STANDARD_MODULE_PROPERTIES

};

Step 5 =>

写你自己的函数

在头文件和function_entry处,我们已经定义了自己的函数pconfig_test,现在我们就来实现pconfig_test的功能。就比如执行两个数相加的和吧。

static void _php3_pconfig_test(INTERNAL_FUNCTION_PARAMETERS)

{ ......

}

PHP_FUNCTION(pconfig_test)

{

_php3_pconfig_test(INTERNAL_FUNCTION_PARAM_PASSTHRU);

}

当系统调用pconfig_test时,会调用你的_php3_pconfig_test函数,当然你也可以把_php3_pconfig_test里的内容直接写在PHP_FUNCTION(pconfig_test)中,这样做只是程序结构比较清晰。注意:不要将_php3_pconfig_test命名成php3_pconfig_test,PHP_FUNCTION(pconfig_test)宏展开后实际上就是php3_pconfig_test!

Step 6 =>

好了,现在我们开始修改configure,在echo $ac_n "checking for MySQL support""... $ac_c" 1>&6的前面(当然,如果你熟悉configure的话,可以加在任何合适的地方)加上下面几句话

if test "${with_pconfig+set}" = set; then

withval="$with_pconfig"

# Add your lib in here

EXTRA_LIBS="$EXTRA_LIBS"

# Add your include path in here

INCLUDES="$INCLUDES"

EXT_SUBDIRS="$EXT_SUBDIRS pconfig"

EXT_LIBS="$EXT_LIBS pconfig/libphpext_pconfig.a"

EXTINFO_DEPS="$EXTINFO_DEPS ../ext/pconfig/extinfo.c.stub"

EXT_STATIC="$EXT_STATIC pconfig"

fi

修改internal_functions.c,在头文件定义中加入#include "ext/pconfig/php3_pconfig.h"

在zend_mole_entry数组中加入phpext_pconfig_ptr,

Step 7 =>

从新configure,带上需要的参数,不要忘记的是在参数里加入 --with-pconfig

Step 8 =>

index.php3

<? echo pconfig_test(123,678)."

"; ?>

执行%>php index.php3

810

㈤ 该学习哪些PHP函数PHP常用函数

以下是记php的常用函数,网上转载的:

php
//===============================时间日期===============================
//y返回年最后两位,Y年四位数,m月份数字,M月份英文。d月份几号数字,D星期几英文
$date=date("Y-m-d");
$date=date("Y-m-d H:i:s");//带时分秒

//include,include_once.require,require_once
//require("file.php") 在PHP程序执行前就会先读入require所指定引进的文件,如出现错误是致命的。
//include("file.php") 可以放在PHP程序的任何位置,PHP程序执行到时才读入include指定引入的文件,如出现错误会提示

//===============================输出打印===============================
//sprintf("%d","3.2") ;//只格式化,返回格式化后的字符串,不输出。
//printf("%d","3.2") ;//即格式化,又输出
//print("3.2") ;//只输出
//echo "nihao","aa";//可以输出多个字符串
//print_r(array("a","b","c"));//将数组的键值与元素依次显示

//===============================常用字符串函数===============================

//获取字符串长度,有多少个字符,空格也算
$str=" sdaf sd ";
$len=strlen($str);

//用第一个参数里的字符串,把后面数组里的每个元素连接起来,返回一个字符串。
$str=implode("-",array("a","b","c"));

//字符串分割方法,返回一个数组,用第一个参数里的字符分割后面的字符串,指定字符的前后和之间都截取,如果指定字符在开头或结尾则返回的数组开头或结尾的元素为空字符串
//没有分割到字符串就返回给数组对应元素一个空值。最后一个限制返回数组长度,可不限制,则一直分割下去。
$array=explode("a","asddad addsadassd dasdadfsdfasdaaa",4);
//print_r($array);

//剔除字符串左边开头的空格,并返回
//如有第二个参数则是剔除左边开头的空格换成剔除第二个参数里的字符串
$str=ltrim("a asd ","a");

//剔除字符串右边开头的空格
$str=rtrim(" asd ");

//把第一个字符串两边以第二个参数开头的字符串剔除。如没有第二个参数,默认剔除掉字符串两边开头的空格
$str=trim(" sdsdfas ","a");

//从字符串第一个参数里的指定位置开始取多长(多少个)字符,字符串中第一个字符位置从0算。
//如果第二个参数为负则从字符串结尾倒数第几个开始取多长的字符串。结尾最后一个字符算-1,截取方向总是从左到右
$str=substr("abcdefgh",0,4);

//将第三个参数的第一个参数字符串用参数二字符串替换
$str=str_replace("a","","abcabcAbca");
//与str_replace用法同,只是不区分大小写
//$str=str_ireplace("a"," ","abcabcAbca");

//返回括号里字符串的字符全部大写的字符串
$str=strtoupper("sdaf");

//将括号里第一个字符串变成大写后返回
$str=ucfirst("asdf");

//用echo等将括号里字符串打印在网页上时原汁原味打印出括号里的字符串,包括标签字符
$str=htmlentities("
");

//返回第二个参数字符串在第一个字符串里出现的次数
$int=substr_count("abcdeabcdeablkabd","ab");

//返回第二个字符串在第一个字符串第一次出现的位置,第一个字符位置算0
$int=strpos("asagaab","ab");

//返回第二个字符串在第一个字符串最后一次出现的位置,第一个字符位置算0
$int=strrpos("asagaabadfab","ab");

//截取返回参数一中从左至右第一个出现的参数二到参数一最后一个字符的字符串
$str=strstr("sdafsdgaababdsfgs","ab");

//截取返回参数一中从左至右最后一个出现的参数二到参数一最后一个字符的字符串
$str=strrchr("sdafsdgaababdsfgs","ab");

//将参数二中每一个字符在参数一中相同字符前加"\"
$str=addcslashes("abcdefghijklmn","akd");

//将参数一的字符串填充到参数二指定的长度(单字符个数),参数三为指定填充的字符串,不写默认空格
//参数四填充位置,0在参数一左侧开头填充,1右侧开头,2两边开头同时。不写默认在右侧开头填充
$str=str_pad("abcdefgh",10,"at",0);

//依次比较两字符串对应字符阿斯克码值,第一对不一样的,如果参数一里大于参数二里的返回1,反之返回-1,两字符串完全一样返回0
$int1=strcmp("b","a");

//返回第一个参数格式化后的数字格式,第二个参数为保留几个小数,参数三为将小数点换成参数三,参数四为整数部分每三位用什么字符分割
//后面三个参数都不写,则默认去掉小数部分,整数每隔三位用逗号,分割。参数三,参数四必须同时存在
$str=number_format(1231233.1415,2,"d","a");

//===============================常用数组方法===============================

$arr=array("k0"=>"a","k1"=>"b","k2"=>"c");

//返回数组元素个数
$int=count($arr);

//判断第二参数的数组元素中是否有第一个参数元素
$bool=in_array("b",$arr);

//返回括号中数组所有键值组成的新数组原数组不改变
$array=array_keys($arr);

//判断第二个参数的数组中是否有第一个参数的键值,返回真假
$bool=array_key_exists("k1",$arr);

//返回原数组中所有元素值组成的新数组,键值从0开始自增,原数组不变
$array=array_values($arr);

//返回当前数组指针指向的键值
$key=key($arr);

//返回当前数组指针指向的元素值
$value=current($arr);

//返回当前数组指针指向元素的键值及元素值组成的数组,再将指针推向下一位,最后指针指向的是一个空元素返回空
//返回的数组中有四个固定键值对应的元素值分别是返回元素的键值及元素值,其中0,'key'键值都对应返回元素键值,1,'value'键值都对应返回的元素值
$array=each($arr);

//先将数组指针推向下一位,再返回指针移动后指向的元素值
$value=next($arr);

//将数组指针推向上一位,再返回指针移动后指向的元素值
$value=prev($arr);

//让数组指针重置指向第一个元素并返回元素值
$value=reset($arr);

//将数组指针指向最后一位元素,并返回最后一位元素值
$value=end($arr);

//将第一个参数以后的参数作为元素追加入第一个参数数组的末尾,索引从最小的没用过的数值开始计,返回之后的数组长度
$int=array_push($arr,"d","dfsd");

//将第一个参数数组后面所有参数作为元素添加到第一个参数数组开头处,键值以0从第一个元素处重新累加,原非数值的键值保持不变,原元素排序位置不变,返回之后的数组长度
$int=array_unshift($arr,"t1","t2");

//返回从数组尾部提取最后一个元素值,并把最后一个元素从原数组中剔除
$value=array_pop($arr);

//array_pop相反,提取返回数组头一个元素值,并把头一个元素从原数组中剔除
$value=array_shift($arr);

//让第一个参数数组达到第二个参数数值长度,将第三个参数作为元素添加到第一个参数数组的末尾,索引从最小没用过数值开始计并返回,原数组不改变
$array1=array_pad($arr,10,"t10");

//返回一个将原数组中多余重复元素剔除掉的新数组,原数组不改变
$array=array_unique($array1);

//将原数组键值打破重新以元素值的阿斯克码值从小到大排序,索引从数字0开始重计
$int=sort($array);

//和sort相反,以元素值阿斯柯码值大小降序重新排序,索引从0重新计
$int=rsort($array);

//返回将第一个参数数组中每一个元素值依次作为键值付给参数二数组的数组,两数组长度必须一致,原数组不改变
$array=array_combine(array("a","b","c","d","e"),$arr);

//将两个数组合并并返回原数组不变
$array=array_merge($arr,array("a","b","c"));

//在第一个参数数组中从第二个参数数值位置开始截取到第三个参数数值长度的数组键值+元素并返回,数组第一个元素位置从0计
$array=array_slice($arr,2,1);

//截取功能和array_slice()一样,只是将截取部分在原数组中剔除
$array=array_splice($arr,2,1);

//将第一个参数作为第一个元素,每次自增参数三的值,自增后再作为一个元素存在数组中,直到值达到参数二的值存到数组中为止并返回这个数组
//参数一,参数二可以是数字,可以是单个字符,单字符就按阿斯柯码值算,第三个参数不写默认每次自增1
$array=range(3,9,2);

//将原数组元素与对应键值的对应关系重新随机排列返回真假
$bool=shuffle($arr);

//计算数组中所有数值型元素值的和
$int=array_sum(array("a",2,"cssf"));

//把一个数组分割为新的数组块,新数组每个元素都是一个数组,新数组每个元素内有几个元素由参数二决定
//第三个参数决定元素的键值是否保留原键值可不写,true为保留,默认false不保留
$array=array_chunk(array("a"=>"a","b","c","d","e","f","g","h"),2,true);

//json_encode()将数组转换成JSON格式字符串返回
$arr = array('k1'=>'val1','k2'=>'val2','k3'=>array('v3','v4'));
echo $encode_str = json_encode($arr);

//json_decode()将JSON格式字符串转换成能强制转换成数组的对象返回,JSON格式字符串中键与值需要引号括起来时必须用双引号
$decode_arr = (array)json_decode($encode_str);
var_mp($decode_arr);
?>

㈥ PHP编程的函数和WHILE用法问题。

第一点, if($arg1 == $arg2) return 0; return($arg1>$arg2)?-1:1;
前一句if($arg1 == $arg2) return 0;意思是如果$arg1 == $arg2,就return 0;
return($arg1>$arg2)?-1:1;这一句是一个三元表达式,意思是如果$arg1>$arg2就return -1否则就return 1
当然, return($arg1>$arg2)?-1:1;等价与你说的ifesle结构。

第二点,并不是没有定义
list($key,$value)=each($arr)
list()函数本身就有定义的意思,而each就是一行一行拿数组中的值
这句代码的意思是,通过while,一行一行的拿数组中的值,并赋值给$key,$value
当然,while(list($key,$value)=each($arr))是等价与foreach($arr as $key=>$value)的

希望采纳,谢谢。

㈦ 使用 PHP 函数编写程序,判断输入一个变量为全数字,字符串长度不允许超过 18 位,不允许为空

php:
if(is_numeric($_POST['num'])) echo '全是数字';
else echo '不全是数字';
if(strlen($_POST['num']) > ) echo '超过个字符';
else echo '没有超过个字符';
js:
if(parseInt(num) == num) alert('全是数字');
else alert('不全是数字');
if(num.length > ) alert('超过个字符');
else alert('没有超过个字符');

阅读全文

与php函数编程相关的资料

热点内容
如何在服务器上隐藏源站地址 浏览:643
单片机进制字母对应表 浏览:526
向某人下命令 浏览:625
编程中删除数组中的数 浏览:84
aes对称加密反编译 浏览:548
java编译成exe 浏览:188
gps处理算法 浏览:594
什么app可以和对象存钱 浏览:144
java字符串表达式计算 浏览:328
javacmd环境变量 浏览:49
电视上面找不到全民歌app怎么办 浏览:154
单片机中psw0 浏览:992
优酷视频加密么 浏览:761
本地连接dos命令 浏览:204
云服务器怎么上传金币房卡游戏 浏览:69
Python快递管理可视化 浏览:417
java正则验证数字 浏览:828
猴子网游安卓扫码怎么登录 浏览:355
7天工作总结简短程序员 浏览:60
手机号交易网站源码 浏览:687