使用php从xml中删除前导空格

时间:2017-06-15 09:08:33

标签: php xml

我需要删除xml下面的前导空格

1
2 <?xml version="1.0" encoding="UTF-8"?>
3 <VAST version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd">
4 </VAST>

我在$ html之类的变量中使用了xml,并使用trim()函数删除了xml ex:echo trim($ html)中的前导空格,但它没有删除空格。 Anyhelp赞赏

4 个答案:

答案 0 :(得分:1)

trim仅从字符串中删除特定的空白字符。但是,如果您的字符串包含其他非呈现字符,则无法使用。

此候选人是BOM(字节顺序标记)。它被解释但不被浏览器呈现。所以它不可见。字节本身不是trim()ltrim()将删除的字符的一部分。

以下是一个例子:

$string = "\xEF\xBB\xBF\r\n<foo/>";
var_dump(trim($string));

输出:

string(11) "
<foo/>"

如果您知道字符串是XML,则可以使用字符串函数在第一个<之前删除任何内容。

$string = substr($string, strpos($string, '<'));
var_dump($string);

输出:

string(6) "<foo/>"

答案 1 :(得分:0)

我似乎想要删除第一行是空的而不是空格。

删除php中的空行:

$html = str_replace(array("\r", "\n"), '', $html);

答案 2 :(得分:0)

如果每次使用ltrim($html)

,就会在开头获得空格

答案 3 :(得分:0)

我在WP主题中遇到了完全相同的问题,我通过执行以下操作修复了它:

  1. 创建.html文件 - 例如。 rsshead.html的内容为:<?xml version="1.0" encoding="UTF-8"?> - 从第1行文件的开头开始;编码可以更改为最适合您的方式

  2. 将HTML文件包含在我的PHP文件中:include('rsshead.html');而不是echo '<?xml version="1.0" encoding="UTF-8"?>'