我正在使用包含大量空白的XML Feed。 当我回显原始Feed时,看起来表格数据的列只是用白色空格正确格式化了。
我已经尝试了许多正则表达式模式来删除它,只允许可见字符,修剪,印章,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
答案 0 :(得分:1)
我刚发现这个正则表达式(未经测试)
$xml_data = preg_replace("/>\s+</", "><", $xml_data);
如果您使用的是xml解析器,我认为您可以使用此处引用的“XML_OPTION_SKIP_WHITE”选项: http://php.net/manual/en/function.xml-parser-set-option.php
答案 1 :(得分:1)
尝试通过utf8_encode()
运行数据 - 它看起来像是一个黑客,但似乎原始数据没有正确设置。
我的理论是你用错误的编码抓住它,正确的解决方案就是加载它。
答案 2 :(得分:0)
<强>解决方案强>
我的hacky解决方法有效:
$raw = file_get_contents('http://stupidwebservice.com/xmldata.asmx/Feed');
$raw = urlencode(utf8_encode($raw));
$raw = str_replace('++','',$raw);
$raw = urldecode($raw);
在utf-8编码之后的