当前位置: 编程技术>php
本页文章导读:
▪php中file_get_contents超时问题的解决方法 有时会遇到file_get_contents超时的问题,file_get_contents一步就做完了打开,读取,关闭的三个动作,过程相当自动化,并且可以读取远程内容。
不过,在网络状况差的情况下,可能会导致程序执.........
▪PHP实例:检测并清除文件开头的BOM信息 本节主要内容:
php检测与清除文件头中BOM信息
例子:
代码示例:
<?php
ini_set('memory_limit', '-1');
/*检测并清除BOM*/
$basedir = dirname(__FILE__);//扫描当前文件路径 可自动设置
$auto = 1;.........
▪php无限级分类的递归函数 本节主要内容:
php递归函数 无限级分类
例子:
代码示例:
<?php
/**
*
* @param 所有数组 $array
* @param 当前用户ID $id
* @param 储存变量 $str
* @return string
*/
function findIds($array,$id,.........
[1]php中file_get_contents超时问题的解决方法
来源: 互联网 发布时间: 2013-12-24
有时会遇到file_get_contents超时的问题,file_get_contents一步就做完了打开,读取,关闭的三个动作,过程相当自动化,并且可以读取远程内容。
不过,在网络状况差的情况下,可能会导致程序执行陷入停滞或者过慢,因为不停的重试和等待PHP进程本身的超时才会退出。
本文分享下我的解决方法:
就是创建一个可以控制的资源句柄,通过控制资源句柄超时来控制file_get_contents这个方法的超时时间。
例子:
代码示例:
<?php
$opts = array(
'http'=array(
'method'='GET',
'timeout'=1, //设置超时,单位是秒,可以试0.1之类的float类型数字
)
);
$context = stream_context_create($opts);
$contents = file_get_contents($url,false,$context);
$opts = array(
'http'=array(
'method'='GET',
'timeout'=1, //设置超时,单位是秒,可以试0.1之类的float类型数字
)
);
$context = stream_context_create($opts);
$contents = file_get_contents($url,false,$context);
方法不算完美,但可用,希望对大家有所帮助吧。
[2]PHP实例:检测并清除文件开头的BOM信息
来源: 互联网 发布时间: 2013-12-24
本节主要内容:
php检测与清除文件头中BOM信息
例子:
代码示例:
<?php
ini_set('memory_limit', '-1');
/*检测并清除BOM*/
$basedir = dirname(__FILE__);//扫描当前文件路径 可自动设置
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if($dh = opendir($basedir)){
while(($file = readdir($dh)) !== false){
if($file != '.' && $file != '..'){
if(!is_dir($basedir."/".$file)){
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}//end while
closedir($dh);
}//end if($dh
}//end function
function checkBOM($filename){
global $auto; // www.
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){
if($auto == 1){
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return "<font color=red>BOM found, automatically removed.</font>";
}else{
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}//end function
function rewrite($filename, $data){
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}//end function
ini_set('memory_limit', '-1');
/*检测并清除BOM*/
$basedir = dirname(__FILE__);//扫描当前文件路径 可自动设置
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if($dh = opendir($basedir)){
while(($file = readdir($dh)) !== false){
if($file != '.' && $file != '..'){
if(!is_dir($basedir."/".$file)){
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}//end while
closedir($dh);
}//end if($dh
}//end function
function checkBOM($filename){
global $auto; // www.
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){
if($auto == 1){
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return "<font color=red>BOM found, automatically removed.</font>";
}else{
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}//end function
function rewrite($filename, $data){
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}//end function
您可能感兴趣的文章:
Php批量去除bom头信息的实现代码
php去掉bom头的代码分享
PHP 过滤页面中的BOM数据的简单实例
检测php文件是否有bom头的代码
批量清除php文件中bom的方法
检查并清除php文件中bom的函数
有关 UTF-8 BOM 导致样式错乱的解决方法
BOM与DOM的区别分析
有关UTF-8 编码中BOM的检测与删除
[3]php无限级分类的递归函数
来源: 互联网 发布时间: 2013-12-24
本节主要内容:
php递归函数 无限级分类
例子:
代码示例:
<?php
/**
*
* @param 所有数组 $array
* @param 当前用户ID $id
* @param 储存变量 $str
* @return string
*/
function findIds($array,$id,$str='') {
$result = findChild($array,$id);//取得当前节点下的所有同级子节点
foreach ($result as $k => $v){
// 赋值给变量
$str.=$v['id'].',';
//再次调用该函数显示子节点下的同级子节点
findIds($array,$v['id'],&$str);
} // www.
return $str;//返回变量
}
//取得当前节点下的所有同级子节点
function findChild(&$arr,$id){
$childs=array();
foreach ($arr as $k => $v){
if($v['pid']== $id){
$childs[]=$v;
}
}
return $childs;
}
/**
*
* @param 所有数组 $array
* @param 当前用户ID $id
* @param 储存变量 $str
* @return string
*/
function findIds($array,$id,$str='') {
$result = findChild($array,$id);//取得当前节点下的所有同级子节点
foreach ($result as $k => $v){
// 赋值给变量
$str.=$v['id'].',';
//再次调用该函数显示子节点下的同级子节点
findIds($array,$v['id'],&$str);
} // www.
return $str;//返回变量
}
//取得当前节点下的所有同级子节点
function findChild(&$arr,$id){
$childs=array();
foreach ($arr as $k => $v){
if($v['pid']== $id){
$childs[]=$v;
}
}
return $childs;
}
您可能感兴趣的文章:
php 递归 无限级分类并返回数组的例子
php实现无限级缓存的类的扩展的代码
php与js制作的无限级可伸缩菜单
php与mysql实现的无限级分类
php把无限级分类生成数组的类
对ecshop中的无限级分类的分析
php写的无限级selectTree类
php用递归方法实现无限级分类的代码
最新技术文章: