0

我正在使用一个包含大量空格的 XML 提要。当我回显原始提要时,看起来好像表格数据的列格式正确,只有空白。

我已经尝试了许多正则表达式模式来删除它,只允许可见字符、修剪、切割、utf-8 编码/解码,没有任何东西可以触及它。当我回显一个值并看到这个时,它就像在我脸上笑:

string(17) "72"

在 Notepad++ 中打开数据并显示所有字符,它只是将其显示为空格。我不知道该去哪里。

我确实收到以下错误:

simplexml_load_string(): Entity: line 265: parser error : Input is not proper UTF-8, indicate encoding !
Bytes: 0xB0 0x43 0x20 0x74
4

3 回答 3

1

我刚刚找到了这个正则表达式(未经测试)

$xml_data = preg_replace("/>\s+</", "><", $xml_data);

如果您使用的是 xml 解析器,我认为您可以使用此处引用的“XML_OPTION_SKIP_WHITE”选项:http: //php.net/manual/en/function.xml-parser-set-option.php

于 2013-08-06T14:37:02.900 回答
1

尝试运行数据utf8_encode()- 它可能看起来像一个黑客,但似乎原始数据没有正确设置。

我的理论是您使用错误的编码来抓取它,正确的解决方案是以不同的方式加载它。

于 2013-08-06T14:37:14.640 回答
0

解决方案

我非常有效的解决方法:

$raw = file_get_contents('http://stupidwebservice.com/xmldata.asmx/Feed');
$raw = urlencode(utf8_encode($raw));
$raw = str_replace('++','',$raw);
$raw = urldecode($raw);

utf-8 编码后的 urlencoding 将空格变成了 +'s。我只是删除了双 ++ 的所有实例并将其取回。效果很好。

于 2013-08-07T21:12:26.483 回答