加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

从PHP手动复制和编程生成的源代码中读取XML的区别

发布时间:2020-12-13 17:10:37 所属栏目:PHP教程 来源:网络整理
导读:我使用 XML文件进行 PHP编码,其源代码我手动复制,看起来像 title type='text'content I've extracted/titlecontent type='text'content I've extracted/content 现在一切都已完成,当我通过PHP编码生成内容时,当我尝试从标题和内容标签中提取内容时,不会生成
我使用 XML文件进行 PHP编码,其源代码我手动复制,看起来像

<title type='text'>content I've extracted</title>
<content type='text'>content I've extracted</content>

现在一切都已完成,当我通过PHP编码生成内容时,当我尝试从标题和内容标签中提取内容时,不会生成输出…当我交叉检查时,我发现了PHP生成的文件(源代码,RSS提要) )好像

<title type='text'>content to be extracted </title>
<content type='text'>content to be extracted</content>

我猜,由于存在反斜杠,因此无法提取内容

我用来从这些标签中获取内容的示例PHP代码是

$titles = $entry->getElementsByTagName( "title" );
  $title = $titles->item(0)->nodeValue;

  $descrs = $entry->getElementsByTagName( "content" );
  $descr = $descrs->item(0)->nodeValue;

我该怎么办?

这是我用来生成XML的PHP??代码

$url='http://gdata.youtube.com/feeds/api/playlists/12345';
$fp = fopen($url,'r'); 
$buffer='';
if ($fp) {
while (!feof($fp))
$buffer .= fgets($fp,1024);
fclose($fp);
file_put_contents('feed.xml',$buffer);

我找到了解决方案

$buff=stripslashes($buffer);
file_put_contents('ka.xml',$buff);

所以stripslashes()函数删除反斜杠,它的工作原理

解决方法

看起来你已经启用了 magic quotes.

If magic_quotes_runtime is enabled,most functions that return data from any sort of external source including databases and text files will have quotes escaped with a backslash.

因此,当您使用fgets读取文件时,任何引号都将被转义. Magic Quotes自PHP 5.3起已弃用.您不应该在脚本中使用它们.

另见http://www.php.net/manual/en/security.magicquotes.php

在旁注中,您复制文件的方法要比它需要的复杂得多.所有这些都可以用于将远程XML保存到文件:

$src = 'http://gdata.youtube.com/feeds/api/playlists/E6DE6EC9A373AF57?v=2';
copy($src,'dest.xml');

要么

$src = 'http://gdata.youtube.com/feeds/api/playlists/E6DE6EC9A373AF57?v=2';
file_put_contents('dest.xml',file_get_contents($src));

要么

$src = 'http://gdata.youtube.com/feeds/api/playlists/E6DE6EC9A373AF57?v=2';
stream_copy_to_stream(fopen($src,'r'),fopen('dest.xml','w+'));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读