xml轉化成php陣列 資料夾讀取,XML解析

2021-06-07 22:48:25 字數 2328 閱讀 7739

由於目前php使用******_load_file和xpath解析xml資料相當慢,然後實現了以下程式直接把xml檔案轉化成php檔案,即直接在php檔案中定義陣列包含xml資料,然後在使用的地方直接載入此php檔案,引用裡面的陣列。現在給出**,裡面包含對資料夾中所有檔案的讀取,遞迴建立目錄,xml讀取等相關點。

1.xml解析成陣列類

<?php

/** * created by zhangwu.

* date: 12-7-17

* time: 下午2:37

*/class xmltoarray

public static function setcontentasname( $name )

public static function setattributeasname( $name )

private static function createxmlarray( $node, &$parent_node, $node_index = 0 )

//建立節點陣列,包含contentasname和attributesasname兩個陣列鍵

//如果$node中的content沒有設定,則為空 (eg:這個地方沒有任何值)

$content = "";

if( count($children) == 0 )

$node_array = array(

self::$attributesasname => $node_attrbutes ,

self::$contentasname => trim( $content )

);//設定層級關係

if( !isset( $parent_node[ $node_name ] ) )

else

}else

// 追加

} $index = 0 ;

// 遞迴操作

foreach( $children as $childnode )

return $parent_node ;

}public static function par***ml( $isfromstring=false, $isjson=false )

else

if ( $root !== false)

return false;

}public static function getxmlbyname( $name, $ext = null )

else

$ret = self::par***ml();

if ( $ret !== false )

} if( isset(self::$xmlpool[$name]) )

return self::$xmlpool[$name];

else

return false; }}

?>

2.讀取資料夾下所有配置檔案並進行轉化操作

<?php

/** * created by zhangwu.

* date: 12-7-19

* time: 下午3:30

*/require_once("xml.php");

/** 遞迴獲取指定路徑下的所有檔案或匹配指定正則的檔案(不包括「.」和「..」),結果以陣列形式返回

* @param string $dir

* @param string $pattern

* @return array

*/function file_list( $dir, $pattern="" )

$tmp = realpath($dir.'/'.$file);

if( is_dir($tmp) )

}else

}} closedir($dir_handle);

} return $arr;

}//遞迴建立多級目錄

function directory( $dir )

// 把指定目錄下所有以".xml"副檔名的檔案(不區分大小寫)

// 轉化成php陣列的形式的php檔案到指定目錄

function xml_to_php( $xmlpath, $phppath, &$files )

else

}}function do_change( $xmlpath, $phppath )

//此處可以更改到相應的檔案目錄

do_change((dirname(__file__) . "\config"), (dirname(__file__) . "\config2"));

echo "";

?>

php陣列物件轉化成json格式

任務目標 將下列陣列物件,轉化成json格式 tdclass object id 9e929826 5c81 11e5 a788 00163e000c27 lawyername 郭俊亭 lawfirm 新疆德新律師事務所 region 喀什地區 licenseareas array 0 stdcla...

php讀取資料夾內檔案及資料夾

php讀取資料夾內檔案及資料夾 引數 資料夾路徑 dir,格式要求 資料夾名稱後必須有 返回值 含有檔名稱和路徑的一維陣列 function read dir else 進行路徑拼接 allfile array merge file arr,dir arr 拼合陣列 return allfile f...

php讀取資料夾許可權

說明 摘錄自 user manager for pureftpd 的許可權顯示函式 整理 功能 讀取資料夾許可權 function displayfilepermissions mode else if mode 0x2000 else if mode 0x4000 else if mode 0x6...