我通常通过上网搜索自己找到问题的答案,但是对于这个问题我已经没有任何想法了…
我添加内容到一个XML文件(这是几个Go)通过php执行命令。我必须这样做因为我需要一个XML来导入Solr Collection中的数据
<?php
$cmd = "echo ''b' > /windowsShare/solr_update_20150728.xml";
var_dump($cmd);
//exec($cmd);
passthru($cmd);
奇怪的行为是,如果我"手动"运行输出,我的XML是有效的…但不知为何,当我通过php执行它时,它插入了一些特殊字符(无效字符)
。: 'b插入一个"BS"在黑色的黑底(在notepad++)
我已经试过了:htmlspecialchars (addSlashes(''b'), ENT_XML1)
请帮忙:)
编辑:简单地添加一个"'"是这个特定的''b'字符的解决方案,但我想有一个一般的解决方案:
。: $txt = "('b€.......
或d≥3";在notepad++中显示如下:
(' b¬……或da¥3
注意:我感觉这是一个编码问题…(当我将编码更改为UTF8时,它可以很好地显示)
您想要添加文字'
和b
字符到您的xml?由于您使用的是"
引号字符串,因此'b
被视为退格。你必须双转义:
$cmd = "echo '''b' > /windowsShare/solr_update_20150728.xml";
^^
您可以切换到使用'
引号字符串,其中'b
没有特殊含义,但是您必须转义回引号:
$cmd = 'echo '''b'' > /windowsShare/solr_update_20150728.xml';
正如我在编辑中所说的,这是一个编码问题。我在插入''到xml
因此SQL数据(UTF-8)正在转换为另一种格式。现在插入.
XML和SQL数据是相同的