从PHP手动复制和编程生成的源代码中读取XML的区别
我使用
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.
因此,当您使用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+')); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |