GVKun编程网logo

php中simplexml_load_file函数用法实例(php的implode)

12

本文的目的是介绍php中simplexml_load_file函数用法实例的详细情况,特别关注php的implode的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解p

本文的目的是介绍php中simplexml_load_file函数用法实例的详细情况,特别关注php的implode的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解php中simplexml_load_file函数用法实例的机会,同时也不会遗漏关于php 5.4 和5.3下的 simplexml_load_file、php simplexml_load_file 中文乱码的解决方法、php simplexml_load_file 中文乱码的解决方法_PHP教程、php simplexml_load_file() 函数把 XML 文档载入对象中的知识。

本文目录一览:

php中simplexml_load_file函数用法实例(php的implode)

php中simplexml_load_file函数用法实例(php的implode)

《PHP中simplexml_load_file函数用法实例》要点:
本文介绍了PHP中simplexml_load_file函数用法实例,希望对您有用。如果有疑问,可以联系我们。

本文实例讲述了PHP中simplexml_load_file函数用法.分享给大家供大家参考.具体用法分析如下:PHP学习

在PHP中simplexml_load_file() 函数把 XML 文档载入对象中之后我们就可以利用由此函数返回的对象进行相关的操作了,下面我们看几个测试实例.

例子,XML文件代码如下:

代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?> 
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

PHP 代码如下:
代码如下:
<?PHP 
if (file_exists('test.xml')) 

  $xml = simplexml_load_file('test.xml'); 
  var_dump($xml); 

else 

  exit('Error.'); 

?>

 
运行输出结果如下: 
代码如下:

object(SimpleXMLElement)#1 (4) {
  ["to"]=>
  string(6) "George"
  ["from"]=>
  string(4) "John"
  ["heading"]=>
  string(8) "Reminder"
  ["body"]=>
  string(25) "Don't forget the meeting!"
}

假如有一个“iciba.xml”文件,其内容如下:
代码如下:
<?xml version="1.0" encoding="UTF-8"?> 
<dict num="219" id="219" name="219"> 
 <key>天空</key> 
 <pos></pos> 
 <acceptation>Array;Array;</acceptation> 
 <sent> 
  <orig>The church tower stood against the sky like a finger pointing towards heaven.</orig> 
  <trans>教堂的尖塔在天空的映衬下宛如指向天空的手指.</trans> 
 </sent> 
 <sent> 
  <orig>A balloon floated across the sky.</orig> 
  <trans>气球飘过天空.</trans> 
 </sent> 
 <sent> 
  <orig>A bolt of lightning lit up the sky.</orig> 
  <trans>(一道)闪电照亮了天空.</trans> 
 </sent> 
 <sent> 
  <orig>A bright moving object appeared in the sky at sunset.</orig> 
  <trans>日落西山时,天空出现了一个移动的发亮物体.</trans> 
 </sent> 
 <sent> 
  <orig>A bright rainbow arched above.</orig> 
  <trans>一弯明亮的彩虹悬挂在天空.</trans> 
 </sent> 
</dict>

在PHP语言中我们可以用以下办法取得我们想要的值: 
代码如下:
<?PHP 
$xmldata = simplexml_load_file("iciba.xml"); 
 
header("Content-Type: text/html; charset=UTF-8"); 
print_r($xmldata); //第一部分 
 
$listcount = count($xmldata->sent); 
 
for($i=0;$i<$listcount;$i++){ //第二部分 
 $dictlist = $xmldata->sent[$i]; 
 echo "<br />例句:".$dictlist->orig; 
 echo "<br />翻译:".$dictlist->trans; 

?>

“第一部分”将输出: 

代码如下:

SimpleXMLElement Object
(
    [@attributes] => Array
        (
            [num] => 219
            [id] => 219
            [name] => 219
        )

    [key] => 天空
    [pos] => SimpleXMLElement Object
        (
        )

    [acceptation] => Array;Array;
    [sent] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [orig] => The church tower stood against the sky like a finger pointing towards heaven.
                    [trans] => 教堂的尖塔在天空的映衬下宛如指向天空的手指.
                )

            [1] => SimpleXMLElement Object
                (
                    [orig] => A balloon floated across the sky.
                    [trans] => 气球飘过天空.
                )

            [2] => SimpleXMLElement Object
                (
                    [orig] => A bolt of lightning lit up the sky.
                    [trans] => (一道)闪电照亮了天空.
                )

            [3] => SimpleXMLElement Object
                (
                    [orig] => A bright moving object appeared in the sky at sunset.
                    [trans] => 日落西山时,天空出现了一个移动的发亮物体.
                )

            [4] => SimpleXMLElement Object
                (
                    [orig] => A bright rainbow arched above.
                    [trans] => 一弯明亮的彩虹悬挂在天空.
                )

        )

)

“第二部分”将输出: 

代码如下:

例句:The church tower stood against the sky like a finger pointing towards heaven.
翻译:教堂的尖塔在天空的映衬下宛如指向天空的手指.
例句:A balloon floated across the sky.
翻译:气球飘过天空.
例句:A bolt of lightning lit up the sky.
翻译:(一道)闪电照亮了天空.
例句:A bright moving object appeared in the sky at sunset.
翻译:日落西山时,天空出现了一个移动的发亮物体.
例句:A bright rainbow arched above.
翻译:一弯明亮的彩虹悬挂在天空.

例子,更深入的一个遍历输出生成表格,代码如下:

代码如下:
eader("content-type:text/html; charset=utf-8"); //设置编码 
$xml = simplexml_load_file('a.xml'); //载入xml文件 $lists和xml文件的根节点是一样的 
echo $xml->company."<br>"; 
echo $xml->town."<br>id:"; 
echo $xml->town['id']."<br>parent:"; 
echo $xml->town['parent']."<br>"; 
 
echo "<br>循环读取:<br>"; 
foreach($xml->user as $users){ //有多个user,取得的是数组,循环输出 
    echo "-------------------<br>"; 
    echo "姓名:".$users->name."<br>"; 
    echo "编号:".$users->age."<br>"; 
    echo "性别:".$users->age['sex']."<br>"; 
    echo "序号:".$users->height."<br>"; 
}
 
echo "<br>循环读取:<br>"; 
foreach($xml->town as $towns){ //有多个user,循环输出 
    echo "-------------------<br>"; 
    echo "id:".$towns['id']."<br>"; 
    echo "归属:".$towns['parent']."<br>"; 
    echo "地区:".$towns."<br>"; 
}

希望本文所述对大家的PHP程序设计有所赞助.

《PHP中simplexml_load_file函数用法实例》是否对您有启发,欢迎查看更多与《PHP中simplexml_load_file函数用法实例》相关教程,学精学透。小编 jb51.cc为您提供精彩教程。

php 5.4 和5.3下的 simplexml_load_file

php 5.4 和5.3下的 simplexml_load_file

最近用php simplexml_load_file处理如下一段xml 

发现 两个电脑上显示的不一样,一台php是5.4 一台是5.3  后来把其中一台改成5.3就一致了。
哪位大神知道 我在5.4下 怎么能用simplexml_load_file生成和5.3一样的内容
ps
 5.4中 rowproperty下obj处理成0 了 而 5.3还是obj


回复讨论(解决方案)

你的数据是错误的,无法进行测试

不好意思 重新发过

确有此现象
但在 
应该是 bug 吧

php simplexml_load_file 中文乱码的解决方法

php simplexml_load_file 中文乱码的解决方法

中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。

在php5.0 中,simplexml_load_file()是一个很好的读取和处理xml文件的函数,但是在读取和处理中文时会出现乱码,经过研究发现,如果是中文内容,必须经过iconv编码转换,否则显示为乱码。

 代码如下 复制代码

$xml=simple_load_file(''xml文件'');

  foreach($xml->soft as $temp){

  echo $temp->name; //这就是软件名称了。 

  echo $temp->mem; //这就是软件说明了。

立即学习“PHP免费学习笔记(深入)”;

}

英文正确中文乱码,这个我估计就是编码问题了。

后来网上找到了相关文章,如核心一句

1、如果xml的encoding与文件类型不符,立刻报错
2、simplexml可以处理gbk的XML,即文件内容和encoding都为gbk(ANSI格式)
3、不管文件内容是什么,处理完了,都是UTF8.


具体方法如下:

 代码如下 复制代码

$chname = iconv(''utf-8'', ''gb2312'', $table->param["name"]);

实现将编码为''utf-8''的XML文件内容转换为 gb2312 格式的内容。

中文编码采用gb2312格式输出。

还有一种办法本人没测试过直接摊贩页面编码转成uft8

 代码如下 复制代码

header("Content-type: text/html; charset=utf-8");
//因为wordpress默认编码是utf-8,但IE默认识别为gb2312,所以用header发一下编码
$url="http://www.bKjia.c0m";
$xml =  simplexml_load_file($url);
//载入远程XML文件
$title=$xml->channel->title;
//根据节点获取博客标题(不循环)
echo $title."
";
//如果节点循环了,可以用foreach循环取出
foreach($xml->channel->item as $item){
 echo $item->title."
";
}
//循环取出文章标题

php simplexml_load_file 中文乱码的解决方法_PHP教程

php simplexml_load_file 中文乱码的解决方法_PHP教程

中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。

在php5.0 中,simplexml_load_file()是一个很好的读取和处理xml文件的函数,但是在读取和处理中文时会出现乱码,经过研究发现,如果是中文内容,必须经过iconv编码转换,否则显示为乱码。

 代码如下 复制代码

$xml=simple_load_file(''xml文件'');

  foreach($xml->soft as $temp){

  echo $temp->name; //这就是软件名称了。 

  echo $temp->mem; //这就是软件说明了。

立即学习“PHP免费学习笔记(深入)”;

}

英文正确中文乱码,这个我估计就是编码问题了。

后来网上找到了相关文章,如核心一句

1、如果xml的encoding与文件类型不符,立刻报错
2、simplexml可以处理gbk的XML,即文件内容和encoding都为gbk(ANSI格式)
3、不管文件内容是什么,处理完了,都是UTF8.


具体方法如下:

 代码如下 复制代码

$chname = iconv(''utf-8'', ''gb2312'', $table->param["name"]);

实现将编码为''utf-8''的XML文件内容转换为 gb2312 格式的内容。

中文编码采用gb2312格式输出。

还有一种办法本人没测试过直接摊贩页面编码转成uft8

 代码如下 复制代码

header("Content-type: text/html; charset=utf-8");
//因为wordpress默认编码是utf-8,但IE默认识别为gb2312,所以用header发一下编码
$url="http://www.bKjia.c0m";
$xml =  simplexml_load_file($url);
//载入远程XML文件
$title=$xml->channel->title;
//根据节点获取博客标题(不循环)
echo $title."
";
//如果节点循环了,可以用foreach循环取出
foreach($xml->channel->item as $item){
 echo $item->title."
";
}
//循环取出文章标题

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632066.htmlTechArticle中文乱码多半是编码导致的我们只要调整一下输出编码即可解决中文乱码问题,下面我们看simplexml_load_file中文乱码解决办法。 在PHP5.0 中,...

php simplexml_load_file() 函数把 XML 文档载入对象中

php simplexml_load_file() 函数把 XML 文档载入对象中

simplexml_load_file()函数将指定的XML文件转换为SimpleXMLElement对象。

语法

PHP simplexml_load_file()函数具有以下语法。

simplexml_load_file(file,classname,options,ns,is_prefix);

参数

参数

是否必须

描述

文件

需要。

XML文件的路径

班级名称

可选的。

新对象的类

选项

可选的。

额外的Libxml参数。通过指定选项和1或0(TRUE或FALSE,例如LIBXML_NOBLANKS(1))来设置

ns

可选的。

命名空间前缀或URI

is_prefix

可选的。

布尔值。如果ns是前缀,则为TRUE。如果ns是URI,则为FALSE。默认值为FALSE

可能的值:

LIBXML_COMPACT - 激活节点分配优化(可加速应用程序)

LIBXML_DTDATTR - 设置默认DTD属性

LIBXML_DTDLOAD - 加载外部子集

LIBXML_DTDVALID - 使用DTD进行验证

LIBXML_NOBLANKS - 删除空白节点

LIBXML_NOCDATA - 将CDATA合并为文本节点

LIBXML_NOEMPTYTAG - 展开空标记(例如对
),仅在DOMDocument-> save()和DOMDocument-> saveXML()函数中可用

LIBXML_NOENT - 替代实体

LIBXML_NOERROR - 不显示错误报告

LIBXML_NONET - 加载文档时禁用网络访问

LIBXML_NowARNING - 不显示警告报告

LIBXML_NOXMLDECL - 保存文档时删除XML声明

LIBXML_NSCLEAN - 删除多余的命名空间声明

LIBXML_PARSEHUGE - 设置XML_PARSE_HUGE标志,放宽解析器的任何硬编码限制。这会影响极限,如文档的最大深度和文本节点大小的限制

LIBXML_XINCLUDE - 实现XInclude替换

LIBXML_ERR_ERROR - 获取可恢复的错误

LIBXML_ERR_FATAL - 获取致命错误

LIBXML_ERR_NONE - 获取无错误

LIBXML_ERR_WARNING - 获取简单的警告

LIBXML_VERSION - 获取libxml版本

LIBXML_DottED_VERSION - 获取点分的libxml版本

返回值

成功时返回SimpleXMLElement对象。失败时为FALSE。

实例

将XML文件转换为SimpleXMLElement对象,然后输出对象的键和元素。

假设我们有以下XML文件“note.xml”:

PHP

Java

PHP代码

<a href="https://www.jb51.cc/tag/PHP/" target="_blank">PHP</a>

Jack

Publisher 1

PHP Book

XML

Jane

Publisher 2

XML Book

上面的代码生成以下结果。

实例5

以下代码显示了如何检查元素是否为数组。

PHP

foreach ($xml->book as $book) {

echo '

' . $book->title . '

';

echo '

if (is_array($book->author)) {

echo implode(',',$book->author);

} else {

echo $book->author;

}

echo '

';

echo '

publisher . '

';

echo '

';

echo '

' . $book->description . '

';

}

?>

以下代码用于test.xml。

<a href="https://www.jb51.cc/tag/PHP/" target="_blank">PHP</a>

Jack

Publisher 1

PHP Book

XML

Jane

Publisher 2

XML Book

关于php中simplexml_load_file函数用法实例php的implode的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于php 5.4 和5.3下的 simplexml_load_file、php simplexml_load_file 中文乱码的解决方法、php simplexml_load_file 中文乱码的解决方法_PHP教程、php simplexml_load_file() 函数把 XML 文档载入对象中的相关信息,请在本站寻找。

本文标签: