Oct142014
PHP中exit()与die()的区别
本篇文章简要分析一下在php中经常用到的exit和die的区别,有需要的朋友可以看一下。
首先思考一个问题:
如下代码会向页面显示什么?
<?php
die(123);
?>
曾经有段时间我一直认为 页面会显示 123,但实践结果告诉我,答案错了,页面一片空白!
一直不知道为什么,死活不输出123,为了让页面输出123,我把它修改为如下代码:
<?php
echo '123';
die();
?>
网上的一段...阅读全文
抢沙发
Oct132014
PHP数组函数array_walk()笔记
定义和用法
array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
典型情况下 function 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。
如果 function 函数需要的参数比给出的多,则每次 array_walk() 调用 function 时都会产生一个 E_WARNING 级的错误。这些警告可以...阅读全文
Oct132014
PHP数组函数array_map()笔记
定义和用法
array_map() 函数返回用户自定义函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
语法
array_map(function,array1,array2,array3…)
参数
描述
function
必需。用户自定义函数的名称,或者是 null。
array1
必需。规定数组。
array2
可选。规定数组。
array3
可选。规定数组。
例子 1
<?php
function myfu...阅读全文
Oct112014
如何删除PHP数组中的元素(unset,array_splice)?
如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排:
<?php
$arr = array('a','b','c','d');
unset($arr[1]);
print_r($arr);
结果是:
Array ( [0] => a [2] => c [3] => d )
那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice():
<?php
$arr = array('a','b','c','d');
array_splice($arr,1,1...阅读全文
Oct112014
PHP如何判断一个gif图片是否为动态图片(动画)
如何使用PHP来判断一个gif图片是否为动态图片(动画)?首先想到的是使用getimagesize()函数来看type值,发现都是gif,所以这个办法是不可行的。下面是作者在网上看到的一个函数,用来判断gif是否为动图的。贴出来和大家分享。
/*
* 判断图片是否为动态图片(动画)
*/
function isAnimatedGif($filename) {
$fp=fopen($filename,'rb');
$filecontent=fread($fp,filesize($filena...阅读全文
Oct102014
Oct102014
Oct062014
php 异步发送邮件的问题
需求:
在某系统里,上传完一个产品的补丁文件或发布产品的更新信息,需要给使用该产品的用户(用户数量较多)发送一封电子邮件,发送后提示发送完毕!
我们常用的PHP代码写法如下:
<?php
// ......
//查找出所有使用该产品的用户email地址,假设存放在$email数组中
for($i=0;$i<count($email);$i++){
sendemail();
}
function sendemail(){
//发送邮件代码
}
...阅读全文
Oct062014
PHP 异步执行方法,模拟多线程
PHP 本身没有多线程的东西,但可以曲线的办法来造就出同样的效果,比如多进程的方式来达到异步调用,只限于命令模式。
另外还有一种更简单的方式可用于 Web 程序中,那就是用 fsockopen()、fputs() 来请求一个 URL, 而无需等待返回,如果你在那个被请求的页面(URL)中做些事情就相当于异步了。
关键代码如下:
<?php
$fp=fsockopen('localhost',80,&$errno,&$errstr,5);
if(...阅读全文
Oct042014