php xmlreader simplexml DOMDocument等读取xml的例子
要处理 XML 文件,有两种传统的处理思路: SAX 和 DOM 。 SAX 基于事件触发机制,对 XML 文件进行一次扫描,完成要进行的处理; DOM 则将整个 XML 文件构造为一棵 DOM树,通过对 DOM 树的遍历完成处理。这两种方法各有优缺点, SAX 的处理思路相对抽象,DOM 的处理过程相对烦琐,都不很适合新手的入门。PHP5 推出了一套新的 XML 处理函数,即 SimpleXML 。名如其实, SimpleXML 本身小巧精干,只提供了少量的几个方法函数,但用它处理起 XML 文件功能却非常强大,操作也非常的简单。
一,什么是xml,xml有什么用途
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的用途很多,可以用来存储数据,可以用来做数据交换,为很多种应用软件提示数据等等。
二,php读取xml的方法
xml源文件
代码如下 | 复制代码 |
<?xml version="1.0" encoding="UTF-8"?> <humans> <zhangying> <name>张映</name> <sex>男</sex> <old>28</old> </zhangying> <tank> <name>tank</name> <sex>男</sex> <old>28</old> </tank> </humans> |
1)DOMDocument读取xml
代码如下 | 复制代码 |
<?php $doc = new DOMDocument(); $doc->load('person.xml'); //读取xml文件 $humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组 foreach( $humans as $human ) { $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组 $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name> $sexs = $human->getElementsByTagName( "sex" ); $sex = $sexs->item(0)->nodeValue; $olds = $human->getElementsByTagName( "old" ); $old = $olds->item(0)->nodeValue; echo "$name - $sex - $old\n"; } ?> |
2)simplexml读取xml
代码如下 | 复制代码 |
<?php $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 foreach($xml_array as $tmp){ echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>"; } ?> |
3)用php正则表达式来记取数据
代码如下 | 复制代码 |
<?php $xml = ""; $f = fopen('person.xml', 'r'); while( $data = fread( $f, 4096 ) ) { $xml .= $data; } fclose( $f ); // 上面读取数据 preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容 foreach( $humans[1] as $k=>$human ) { preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字 preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别 preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄 } foreach($name[1] as $key=>$val){ echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ; } ?> |
4)xmlreader来读取xml数据
代码如下 | 复制代码 |
<?php
|
使用 DOMDocument 操控 XML
1. DOMDocument 解析 XML
代码如下 | 复制代码 |
// 创建一个 DOMDocument() $_doc = new DOMDocument(); // 载入 xml $_doc ->load( 'test.xml' ); // 取 version 标签 $_version = $_doc ->getElementsByTagName( 'version' ); echo $_version ->item( 2 )->nodeValue; // 遍历 version 标签 foreach ( $_version as $v ) { echo $v ->nodeValue; } 2. DOMDocument 生成 XML // 声明 xml $_doc = new DOMDocument( '1.0' , 'utf-8' ); // 排版格式 $_doc ->formatOutput = true ; // 创建一个主标签 $_root = $_doc ->createElement( 'root' ); // 创建一个一级标签 version $_version = $_doc ->createElement( 'version' ); // 给 version 标签里赋值 $_versionTextNode = $_doc ->createTextNode( '1.0' ); // 将值放入 version 标签里 $_version ->appendChild( $_versionTextNode ); // 将一级标签 version 放入 root 里 $_root ->appendChild( $_version ); // 将主标签写入 xml $_doc ->appendChild( $_root ); // 生成 xml $_doc ->save( 'aaa.xml' ); |
很多情况下 , 手工生成标记要求从上到下生成文档 , 必须保证标签都是完整的 , 开始和结束标签。尽管借助于一些 PHP 函数或类可以有所改善,不过 PHP 还提供了一组更有帮助的内置对象和函数。文档对象模型( Document Object Model , DOM )提供了一个树状结构,能很容易创建和处理标签。
三,小结
读取xml的方法很多,简单举几个。上面四种方法都是可以把标签中的数据读出来,<name>张映</name>.但是他们的测重点不同,前三种方法的读取xml的function的设计重点,是为了读取标签中的值,相当于jquery中的text()方法,而xmlreader呢他就不太一样,他的重点不在读取标签中的值,而读取标签的属性,把要传送的数据,都放在属性中(不过我上面写的那个方法还是取标签中的值,因为xml文件已经给定了,我就不想在搞xml文件出来了)。举个例子解释一下,
<data name='张映' sex='男' old='28'></data>
xmlreader的设计重点是为了读data里面的name sex old的值,而读取<data></data>的内容就比较麻烦了。他相当于jquery中attr('');这个东西。
xml文件结构如下
php代码解析:
$url="";//输出xml的URL $dom = new DOMDocument('1.0', 'utf-8'); $dom->load($url);
这样我们捕获里XML数据,然后一点点截取,这段XML有多个URL节点,需要利DOMPATH解析
$xpath = new DOMXPath($dom); $node = '//url'; $length = $xpath->query($node)->length;
然后根据每个url内的字节点去获取数据
for($i = 0; $i < $length; $i++) { $data = array(); $m_date = date('Y-m-d', strtotime($xpath->query($node.'['.($i+1).']/date')->item(0)->nodeValue)); $m_start = $xpath->query($node.'['.($i+1).']/start')->item(0)->nodeValue; $m_end = $xpath->query($node.'['.($i+1).']/end')->item(0)->nodeValue; $m_title = $xpath->query($node.'['.($i+1).']/title')->item(0)->nodeValue; $m_format = $xpath->query($node.'['.($i+1).']/format')->item(0)->nodeValue; $m_season = $xpath->query($node.'['.($i+1).']/season')->item(0)->nodeValue; $m_round = $xpath->query($node.'['.($i+1).']/round')->item(0)->nodeValue; /*$homeTeam = $xpath->query($node.'['.($i+1).']/homeTeam')->item(0)->nodeValue; if(empty($homeTeam)) continue; $guestTeam = $xpath->query($node.'['.($i+1).']/guestTeam')->item(0)->nodeValue; if(empty($guestTeam)) continue;*/ $homeTeam = $xpath->query($node.'['.($i+1).']/homeTeam')->item(0)->nodeValue; $guestTeam = $xpath->query($node.'['.($i+1).']/guestTeam')->item(0)->nodeValue; if(empty($guestTeam) || empty($homeTeam)) { if($m_title){ $temp_title=explode(" ", $m_title); list($homeTeam,$guestTeam)=explode("vs", $temp_title[1]); unset($temp_title); } } if(empty($homeTeam)) continue; if(empty($guestTeam)) continue; }
php操作xml类主要是针对xml文件夹一个读取查询删除数据例子,下面一起来看看,目前此类暂只支持三级节点哦。
文件名:xml.class.php
代码如下 | 复制代码 |
/*** * * * 文件名: xml.php * * 作 用: xml类,完善中,暂只支持三级节点 * * 作 者: loking(biyees) * * * * example 读取数据: * * $xml = new xml(“dbase.xml”,’table’); * * $data=$xml->xml_fetch_array(); * * echo ”<pre style=\”font-size:12px;\”>”; * * print_r($data); * * * ******************/ class xml{ var $dbase; //数据库,要读取的XML文件 var $dbname; //数据库名称,顶层元素,与数据库文件名称一致 var $dbtable; //数据表,要取得的节点 var $parser; //剖析器 var $vals; //属性 var $index; //索引 var $dbtable_array;//节点数组 var $array; //下级节点的数组 var $result; //返回的结果 var $querys; function xml($dbase,$dbtable){ $this->dbase=$dbase; $this- >dbname=”document”; $this- >dbtable=$dbtable; $data=$this- >ReadXml($this->dbase); if(!$data){ die( ”无法读取 $this->dbname.xml”); } $this- >parser = xml_parser_create(); xml_parser_set_option($this- >parser,XML_OPTION_CASE_FOLDING,0); xml_parser_set_option($this- >parser,XML_OPTION_SKIP_WHITE,1); xml_parse_into_struct($this- >parser,$data,$this->vals,$this->index); xml_parser_free($this- >parser); //遍历索引,筛选出要取值的节点 节点名:$dbtable foreach ($this- >index as $key=>$val) { if ($key == $this- >dbtable) { //取得节点数组 $this- >dbtable_array = $val; } else { continue; } } for ($i=0; $i < count($this->dbtable_array); $i+=2) { $offset = $this- >dbtable_array[$i] + 1; $len = $this- >dbtable_array[$i + 1] - $offset; //array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。 //所取节点下级数组 $value=array_slice($this- >vals,$offset,$len); //取得有效数组,合并为结果数组 $this- >array[]=$this->parseEFF($value); } return true; } //将XML文件读入并返回字符串 function ReadXml($file) { return file_get_contents($file); } //取得有效数组 function parseEFF($effective) { for ($i=0; $i < count($effective); $i++){ $effect[$effective[$i][ "tag"]] = $effective[$i]["value"]; } return $effect; } //xml_query(方法,条件,多条件时逻辑运算符and or or,总数据数组,插入或更新的数组) function xml_query($method,$condition,$if=’and’,$array=array()) { if(($method==’select’)||($method==’count’)){ return $this- >xml_select($method,$condition,$if); } elseif($method==’insert’) { return $this- >xml_insert($condition,$if,$array); } elseif($method==’update’) { return $this- >xml_update($condition,$if,$array); } } //取得xml数组 function xml_fetch_array($condition,$if) { //$this- >querys++; $row = $this- >array; //初始化数据数组 if($condition) { //是否有条件,如有条件则生成符合条件的数组 //生成条件数组,条件格式 field,operator,match $condition=explode( ”,”,$condition);//条件数组 $cs=count($condition)/3; //条件数 for($i=0;$i <$cs;$i++){ $conditions[]=array( ”field”=>$condition[$i*3],”operator”=>$condition[$i*3+1],”match”=>$condition[$i*3+2]); } //echo count($row); for($r=0;$r <count($row);$r++){ for($c=0;$c <$cs;$c++){ //$i++; $condition=$conditions[$c]; //当前条件 $field=$condition['field']; //字段 $operator=$condition[ "operator"];//运算符 $match=$condition['match']; //匹配 if(($operator==’=') &&($row[$r][$field]==$match)){ $true++;//若条件符合,符合数加1 } elseif(($operator==’!=’) &&($row[$r][$field]!=$match)){ $true++;//若条件符合,符合数加1 } elseif(($operator==’ <’)&&($row[$r][$field]<$match)){ $true++;//若条件符合,符合数加1 } elseif(($operator==’ <=’)&&($row[$r][$field]<=$match)){ $true++;//若条件符合,符合数加1 } elseif(($operator==’ >’)&&($row[$r][$field]>$match)){ $true++;//若条件符合,符合数加1 } elseif(($operator==’ >’)&&($row[$r][$field]>=$match)){ $true++;//若条件符合,符合数加1 } } //根据条件取值 if($if==’and’){ //如果多条件为and,当符合数等于条件数时,生成数组 if($true==$cs){ $result[]=$row[$r]; } } else { //如果多条件为or,当有符合纪录时,生成数组 if($true!=0){ $result[]=$row[$r]; } } //echo $true; //echo ”<pre style=\”font-size:12px;\text-align:left\”>”; //print_r($true); $true=0;//符合条件数归零,进入下一轮循环 } } else { $result=$this- >array; } //echo ”<pre style=\”font-size:12px;\text-align:left\”>”; //print_r($this- >result); return $result; } //筛选或统计 function xml_select($method,$condition,$if) { $result=$this- >xml_fetch_array($condition,$if); if($method==’select’){ return $result; } else { return count($result); } } //插入数据 function xml_insert($condition,$if,$array) { $data=$this- >xml_fetch_array($condition,$if);//总数据数组 $data[]=$array; //插入后的总数据数组 $this- >array=$data; //更新总数组 $this- >WriteXml($data); } //得到更新的XML并改写 function xml_update($condition,$if,$array){ $datas=$this- >array; //总数据数组 $subtract=$this- >xml_fetch_array($condition,$if);//要更新的数组 //echo ”<pre style=\”font-size:12px;\text-align:left\”>”; //print_r($data); //print_r($datas); //echo ”每条记录中有“.count($datas[0]).”个值<br>”; for($i=0;$i <count($datas);$i++){ $data=$datas[$i]; //echo ”原始记录中的第“.$i.”条<br>”; foreach($data as $k= >$v){ //echo ”-第“.$i.”条的“.$k.”值为“.$v.”<br>”; //echo ”–要查找的数组“.$k.”值为“.$subtract[0][$k].”<br>”; if($v==$subtract[0][$k]){ $is++; } } if($is==count($data)){ //echo ”—-与第“.$i.”条符合<br>”; $datas[$i]=$array; //array_splice($datas,$i,$i+1); } //echo ”原始记录中的第“.$i.”条与要查找的有“.$is.”匹配<br>”; //echo ”原始记录中的第“.$i.”条结束<br>”; $is=0; } //array_splice($datas,2,2+1,$array); //echo ”<pre style=\”font-size:12px;\text-align:left\”>”; //print_r($datas); $this- >array=$datas; $this- >WriteXml($datas); } //写入XML文件(全部写入) function WriteXml($array) { if(!is_writeable($this- >dbase)){ die( ”无法写入“.$this->dbname.”.xml”); } $xml.= ”<?xml version=\”1.0\” encoding=\”gb2312\”?>\r\n”; $xml.= ”<$this->dbname>\r\n”; for($i=0;$i <count($array);$i++){ $xml.= ”<$this->dbtable>\r\n”; foreach($array[$i] as $k= >$s){ $xml.= ”<$k>$s</$k>\r\n”; } $xml.= ”</$this->dbtable>\r\n”; } $xml.= ”</$this->dbname>”; dbase,”w’>$fp=@fopen($this->dbase,”w”); flock($fp, LOCK_EX); rewind($fp); fputs($fp,$xml); fclose($fp); } //逐行写入xml(我试着写入10000行,感觉没一次写入快,所以没用这种写入方式) function WriteLine($array) { if(!is_writeable($this- >dbase)){ die( ”无法写入“.$this->dbname.”.xml”); } dbase,”w’>$fp=@fopen($this->dbase,”w”); rewind($fp); flock($fp, LOCK_EX); fputs($fp, ”<?xml version=\”1.0\” encoding=\”gb2312\”?>\r\n”); fputs($fp, ”<$this->dbname>\r\n”); for($i=0;$i <count($array);$i++){ fputs($fp, ”<$this->dbtable>\r\n”); $xml.= ”<$this->dbtable>\r\n”; foreach($array[$i] as $k= >$s){ fputs($fp, ”<$k>$s</$k>\r\n”); } fputs($fp, ”</$this->dbtable>\r\n”); } fputs($fp, ”</$this->dbname>”); fclose($fp); } } ?> |
使用方法:
插入一条记录
代码如下 | 复制代码 |
require_once(‘xml.class.php’); $xml = new xml(“exemple.xml”,”item”); $newarray = array( “title”=>”XML标题“, “text”=>”PHP的XML类测试!“ ); $insert=$xml->xml_query(‘insert’,”,”,$newarray);//第二及第三个变量位置是条件,留空表示在最后插入 修改记录 require_once(‘xml.class.php’); $xml = new xml(“exemple.xml”,”item”); $array = array( “title”=>”XML标题“, “text”=>”PHP的XML类测试!“ ); |
$insert=$xml->xml_query(‘update’,'title,=,20年后世界将会怎样?‘,’and’,$array);//title标签等于xxx的用$array替换(可以建唯一属性的标签,比如id,这样就可以修改某一条记录)
删除记录
代码如下 | 复制代码 |
require_once(‘xml.class.php’); $xml = new xml(“exemple.xml”,”item”); $array = array(); $insert=$xml->xml_query(‘update’,'title,=,20年后世界将会怎样?‘,’and’,$array);//数组留空 |
备注
删除时其实是把值变空,我们可以修改一下xml_update(),在生成xml文件之前先判断$array的值,如果值为空就不写入到最终的数组中就是删除的效果了。
写入xml文件时速度粉快(我测试过30000条记录的情况),插入时只插入一条记录,修改速度也相当的快,挺适合中型网站生成XML时使用,所以推荐一下。
PHP如何读取xml文件?有不少朋友不知道这个问题,其实php对于xml文档是有专门的函数来操作了,下面我们就来举几个php读取xml例子希望能给各位带来帮助。一,什么是xml,xml有什么用途
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的用途很多,可以用来存储数据,可以用来做数据交换,为很多种应用软件提示数据等等。
二,php读取xml的方法
xml源文件
代码如下 | 复制代码 |
<?xml version="1.0 encoding="UTF-8"?> |
2)simplexml读取xml
代码如下 | 复制代码 |
<?php $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 foreach($xml_array as $tmp){ echo $tmp->name."-".$tmp->sex."-".$tmp->old."<br>"; } ?> 如果你使用 curl 获取的 xml data $xml = simplexml_load_string($data); $data['tk'] = json_decode(json_encode($xml),TRUE); 如果是直接获取 URL 数据的话 $xml = simplexml_load_file($data); $data['tk'] = json_decode(json_encode($xml),TRUE); |
先把 simplexml 对象转换成 json,再将 json 转换成数组。
3)用php正则表达式来记取数据
代码如下 | 复制代码 |
<?php $xml = ""; $f = fopen('person.xml', 'r'); while( $data = fread( $f, 4096 ) ) { $xml .= $data; } fclose( $f ); // 上面读取数据 preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容 foreach( $humans[1] as $k=>$human ) { preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字 preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别 preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄 } foreach($name[1] as $key=>$val){ echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."<br>" ; } ?> |
4)xmlreader来读取xml数据
代码如下 | 复制代码 |
<?php $reader = new XMLReader(); $reader->open('person.xml'); //读取xml数据 $i=1; while ($reader->read()) { //是否读取 if ($reader->nodeType == XMLReader::TEXT) { //判断node类型 if($i%3){ echo $reader->value; //取得node的值 }else{ echo $reader->value."<br>" ; } $i++; } } ?> |
三,小结
读取xml的方法很多,简单举几个。上面四种方法都是可以把标签中的数据读出来,张映.但是他们的测重点不同,前三种方法的读取xml的function的设计重点,是为了读取标签中的值,相当于jquery中的text()方法,而xmlreader呢他就不太一样,他的重点不在读取标签中的值,而读取标签的属性,把要传送的数据,都放在属性中(不过我上面写的那个方法还是取标签中的值,因为xml文件已经给定了,我就不想在搞xml文件出来了)。
举个例子解释一下,
代码如下 | 复制代码 |
<data name=’张映’ sex=’男’ old=’28′></data> |
xmlreader的设计重点是为了读data里面的name sex old的值,而读取的内容就比较麻烦了。他相当于jquery中attr(”);这个东西。
php生成xml时添加CDATA标签方法非常的简单,因为是一个在xml中可以存储各种内容的标签了,下面整理了一个例子希望对各位有帮助。贴上代码留住伤疤,不要把<![CDATA[ $text]]>当成前后缀,其实它可以是标签。
代码如下 | 复制代码 |
<?php $dom = new DOMDocument("1.0"); |
相关文章
用js的document.write输出的广告无阻塞加载的方法
一、广告代码分析很多第三方的广告系统都是使用document.write来加载广告,如下面的一个javascript的广告链接。复制代码 代码如下:<script type="text/javascript" src="http://gg.5173.com/adpolestar/5173/;ap=2EBE5...2014-06-07- 安装curl扩展支持https是非常的重要现在许多的网站都使用了https了,下面我们来看一篇关于PHP安装curl扩展支持https例子吧。 问题: 线上运行的lamp服务器,默认yu...2016-11-25
- floor会产生小数了如果我们不希望有小数我们是可以去除小数点的了,下面一聚教程小编来为各位介绍php使用floor去掉小数点的例子,希望对各位有帮助。 float floor (...2016-11-25
- 下面我们来看一篇关于纯Css实现下拉菜单的简单例子,希望这篇文章能够给各位同学带来帮助,具体步骤如下. 大家可能会经常用到hover这属性,用hover实现鼠标经过的颜...2017-01-22
- 这篇文章主要介绍了详解Document.Cookie的相关资料,需要的朋友可以参考下...2015-12-27
- 在php中日期对比用得比较多了,还有一个日期加减也用到不少,下面我拿两个例子来给大家介绍在php中日期操作方法吧,希望文章能给你带来帮助 功能需求 文章发布时段操...2016-11-25
- 本例子不是读取Excel或生成新的Excel,而是读取现有的Excel文件,然后修改Excel中的数据,就像修改mysql中数据一样的哦。 代码如下 ...2016-11-25
- 正则提取图片中的地址我们介绍过很多的相关文章了,下面再来给各位介绍一个可以提取内容中第一张图片的例子,希望对各位有帮助。 代码如下 复制代码 ...2016-11-25
- 最近看到博客留言的头像有点别扭,因为游客的头像都是同一个头像,看着不是很舒服。虽然现在绝大多数的主题集成了Gavatar头像功能,先不说gavatar被墙的问题,我自己现在都没...2016-11-25
- php判断字符串是否包含另一个字符串的实现方法有许多的办法,像我们在网上一搜索可看到大量关于字符是否包含指定字符的方法,下面我把这些实用的例子整理一起与大家分享...2016-11-25
- PHP 提供了 simplexml_load_string 方法用来解析 XML 格式的字符串,并返回 SimpleXMLElement 对象。不过一般数组是更为适用的,所以也会有转换为普通数组的需求,这个方法...2016-11-25
- date函数是php中一个非常好用的日期获取函数了,我们可以使用它来获取指定日期或者当前日期了,下面我来简单的介绍一下date函数用法与常用用法吧。 PHP星期几获取代...2016-11-25
Java org.w3c.dom.Document 类方法引用报错
这篇文章主要介绍了Java org.w3c.dom.Document 类方法引用报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-07XmlDocument 创新对象时, 产生 xmlns="" 的解决方案
今天做开发时碰到的XmlDocument 创新对象时, 产生 xmlns=\"\" 的,经过分析总结了问题所在,有需要朋友参考一下,可能能帮助你解决这个问题。 1. 读取时,应该添加N...2016-11-25- 对于cookie path很多的朋友不以为燃了这样会发现就是因为一个小点或一个路径问题测试了一天发现读取不了cookie值了,今天我就来给大家介绍cookie中路径的一些例子与注...2016-11-25
- 文件锁可以防止文件读写时多人访问时出现共享问题或数据不准确的问题,下面我们来看一篇关于php文件锁类防止并发的例子,具体如下. 工作间隙写了个文件锁的类,用于...2016-11-25
- 404状态代码在php中可以使用header输出但不能使用echo或print输出哦,许多的朋友把这个给搞混了,下面我们来看一篇关于php输出404状态码的例子 例子 代码如...2016-11-25
- Listing 4. simplemovie.mxml <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:VBox...2016-11-25
- 数组转xml用到不多用数组转json比较多了,但今天有一个功能就是必须要把数组转换成xml了,下面小编人网上找到了一段关于php 数组转xml的代码测试了都可以使用,下面整理分...2016-11-25
- 在php中我们要查看mysql数据库的信息我们可以直接连接mysql之后再调用mysql相关语句就可以实现了,下面给各位整理了一篇文章希望对大有帮助。 首先我们需要了解下...2016-11-25