当前位置: 编程技术>php
本页文章导读:
▪关于php散列数组与格式化(zendframework中的ini读取方式) 时间有限,记录一个列子 $Arr_Test[ 'test.mytest.youtest' ] = 1; 散列结果将'test.mytest.youtest'散列为以test等为键的多维数组 最终的效果是 $Arr_Test[ 'test' ][ 'mytest' ][ 'youtest' ] = 1; /*.........
▪apache启动 the requested operation has failed 小编在拿到别人的服务器(wamp)之后 重启了下apache 竟然启动报the requested operation has failed当时哥就震惊了、于是哥就运行cmd 进入到apache的bin目录。输入httpd.exe -w -n "Apache2.2" -k start看到这个.........
▪文件内容搜索和相同文件后缀合并到一个文件中 /** * 两个对外公共方法: * 1:resultPreg(目录,匹配格式) * 2.resultFile(目录,文件后缀名) * * @author 葫芦侠 * */class checkWord{ //const DIR="D_"; //目录的话接一个前缀 //const F='F_'; protecte.........
[1]关于php散列数组与格式化(zendframework中的ini读取方式)
时间有限,记录一个列子 $Arr_Test[ 'test.mytest.youtest' ] = 1;
散列结果将'test.mytest.youtest'散列为以test等为键的多维数组
最终的效果是 $Arr_Test[ 'test' ][ 'mytest' ][ 'youtest' ] = 1;
/**
* @desc 格式化数组
* @param array $Arr_Format
* @return array
*/
function formatArray( &$Arr_Format )
{
foreach ( $Arr_Format as $key => $val )
{
$Arr_Key = explode( '.', $key );
if ( is_array( $val ) ) formatArray( $Arr_Format[ $key ] );
if( 1 < count( $Arr_Key ) )
{
/** get the first key and pop it from key array **/
$cFirstKey = $Arr_Key[ 0 ];
array_shift( $Arr_Key );
$Arr_Tmp = hashArray( $Arr_Key, $val );
unset( $Arr_Format[ $key ] );
if( array_key_exists( $cFirstKey, $Arr_Format ) )
{
$Arr_Format[ $cFirstKey ] = array_merge_recursive( $Arr_Format[ $cFirstKey ], $Arr_Tmp );
}
else
{
$Arr_Format[ $cFirstKey ] = $Arr_Tmp;
}
/** the first key must be array, and get the hash val to it **/
}
}
return $Arr_Format;
}
/**
* @desc 散列数组(根据指定的键形成多维数组)
* @param array $Arr_Hash hash key array
* @param mixed $mLastVal the last key value
* @return array
*/
function hashArray( $Arr_Hash, $mLastVal = false )
{
if ( false === is_array( $Arr_Hash ) ) return array();
$iCountArr = count( $Arr_Hash );
for( $i = $iCountArr - 1; $i >= 0; $i-- )
{
if( $i == $iCountArr - 1 )
{
$Arr_Tmp[ $Arr_Hash[ $i ] ] = false == $mLastVal ? array() : $mLastVal;
}
else
{
$Arr_Tmp[ $Arr_Hash[ $i ] ] = $Arr_Tmp;
array_shift( $Arr_Tmp );
}
}
return $Arr_Tmp;
}
使用formatArray( $Arr_Test );就能实现类型zend散列多维数组的方法。
附,载入ini文件的方法
/**
* @desc 载入ini文件
* @param string $cFileName ini file name
* @param bool $bToArray load mode( if to array, default to object )
* @return mixed
*/
function loadIniFile( $cFileName, $bToArray = false )
{
$Arr_IniFile = parse_ini_file( $cFileName, true );
if( false !== $Arr_IniFile )
{
$Arr_IniFile = formatArray( $Arr_IniFile );
if ( false === $bToArray ) $Arr_IniFile = arrayToObject( $Arr_IniFile );
}
return $Arr_IniFile;
}
/**
* @desc 数组转换为对象
* @param mixed $e
* @return mixed
*/
function arrayToObject($e)
{
if ( 'array' != gettype( $e ) ) return;
foreach($e as $k=>$v)
{
if( gettype($v)=='array' || getType($v)=='object' )
$e[$k]=(object)arrayToObject($v);
}
return (object)$e;
}
/**
* @desc 对象转换为数组
* @param mixed $e
* @return mixed
*/
function objectToArray($e){
$e=(array)$e;
foreach($e as $k=>$v)
{
if( gettype($v)=='resource' ) return;
if( gettype($v)=='object' || gettype($v)=='array' )
$e[$k]=(array)objectToArray($v);
}
return $e;
}
本文链接
[2]apache启动 the requested operation has failed
小编在拿到别人的服务器(wamp)之后 重启了下apache 竟然启动报
the requested operation has failed
当时哥就震惊了、
于是哥就
运行cmd 进入到apache的bin目录。输入httpd.exe -w -n "Apache2.2" -k start
看到这个哥就笑了 原来是180行有问题 找到的时候才知道 180行这个
DocumentRoot "D:/www/demo" 就是没有这个目录
之后哥把这个删除了 就运动正常了 后来才明白 之前服务器主人 www 目录下有demo这个文件夹 之后删除了
就没有把http.conf 下的配置删除
所以提醒广大朋友 配置apache 服务器一定要开启虚拟虚拟主机配置
本文链接
[3]文件内容搜索和相同文件后缀合并到一个文件中
/**
* 两个对外公共方法:
* 1:resultPreg(目录,匹配格式)
* 2.resultFile(目录,文件后缀名)
*
* @author 葫芦侠
*
*/
class checkWord{
//const DIR="D_"; //目录的话接一个前缀
//const F='F_';
protected static $sum=0; //记录总查找数
protected $result=array(); //数组记录结果
protected $dir; //传进来的目录或者文件名
protected $preg; //需要匹配条件
protected $ext;
protected $dirMer;
protected $fileArr=array(); //数组记录结果
/**
*
* 构造函数
*/
public function __construct(){
}
/*
* 文件搜素
*/
protected function checkFile($file){
$content=file_get_contents($file);
preg_match_all($this->preg, $content, $pregContent);
$len=count($pregContent[0]); //当前文件匹配条数
self::$sum+=$len;
if(empty($len)){
return false;
}else{
return true;
}
}
/**
* 判断文件是否存在
*/
protected function fileExists($dir){
if(!file_exists($dir)){
echo "<script type='text/javascript'>alert('目录或者文件不存在')</script>";
exit();
}
}
/**
* 运行方法
* @param unknown_type $dir
*/
protected function run($dir){
is_dir($dir)?$this->check($dir):$this->checkFile($dir);
}
/**
* 目录搜索
*/
protected function check($dirname){
$handle=@opendir($dirname);
while(($file=@readdir($handle))!==false){
if($file!='.' && $file!='..'){
$dir=$dirname.'/'.$file;
if(is_dir($dir)){
$this->check($dir);
}else{
if($this->checkFile($dir)){ //匹配,返回是否存在结果
$this->result[]=$dir;
}
}
}
}
closedir($handle);
}
/**
* 提取目录文件
*/
protected function getExtFile($dirname){
$handle=@opendir($dirname);
while(($file=@readdir($handle))!==false){
if($file!='.' && $file!='..'){
$dir=$dirname.'/'.$file;
if(is_dir($dir)){
$this->getExtFile($dir);
}else{
//判断文件扩展名
if(
最新技术文章:
 
站内导航:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!