Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 中和&&引用;在Excel文件中_Php_Xml_Excel - Fatal编程技术网

Php 中和&&引用;在Excel文件中

Php 中和&&引用;在Excel文件中,php,xml,excel,Php,Xml,Excel,这个问题的名字可能有点让人困惑,所以我会尽力澄清。我有一个包含一些产品的数据库和一个生成Excel xml文件的系统,用于导出这些产品及其价格。问题是,当数据库字段中有“&”字符(通常是产品名称)时,生成的excel文件“格式不正确”。另一件事是,数据库相当大,一些产品名称可能包含“中和”字符(例如&,或“),但有些不包含,因此我必须执行类似于unescape的操作,然后转义以获得所需的内容。 我已经试过了 mysql_real_escape_string(htmlspecialchars

这个问题的名字可能有点让人困惑,所以我会尽力澄清。我有一个包含一些产品的数据库和一个生成Excel xml文件的系统,用于导出这些产品及其价格。问题是,当数据库字段中有“&”字符(通常是产品名称)时,生成的excel文件“格式不正确”。另一件事是,数据库相当大,一些产品名称可能包含“中和”字符(例如
&
,或
),但有些不包含,因此我必须执行类似于unescape的操作,然后转义以获得所需的内容。 我已经试过了

mysql_real_escape_string(htmlspecialchars($name));
但这似乎没有任何作用。任何帮助都将不胜感激

编辑: 也许这会有更多帮助-我有一个定制的“系统”将产品导出到xls文件。它们看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
<Worksheet ss:Name="Table1">
<Table>
<Column ss:Index="1" ss:AutoFitWidth="0" ss:Width="110"/>

<Row>    
<Cell><Data ss:Type="String">Interna sifra</Data></Cell>
<Cell><Data ss:Type="String">Sifra</Data></Cell>
<Cell><Data ss:Type="String"> Naziv</Data></Cell>
<Cell><Data ss:Type="String">MP cena</Data></Cell>
<Cell><Data ss:Type="String">VP cena</Data></Cell>
</Row>

<Row>
<Cell><Data ss:Type="String">5263</Data></Cell>
<Cell><Data ss:Type="String">03SL8733</Data></Cell>
<Cell><Data ss:Type="String">Speed Link slušalice sa mikrofonom IUNO Mono</Data></Cell>
<Cell><Data ss:Type="String">0.00</Data></Cell>
<Cell><Data ss:Type="String">733.04</Data></Cell>
</Row>

</Table>
</Worksheet>
</Workbook>

西夫拉内部酒店
西非拉
纳齐夫
塞纳议员
cena副总裁
5263
03SL8733
速度链接slušalice sa mikrofonom IUNO Mono
0
733.04

除了更多的行之外。它们是用php生成的,通过遍历数据库记录,并将所有行回送到ExcelXML文件中。我希望这现在更有意义。

Hello可能会取代您的&by\&

<?php
$name = str_replace("&", "\&", $name)

那么你生成Excel文件的系统坏了,它可能与数据库没有多大关系。你到底在做什么?另外:好的,系统工作正常。当数据库字段中没有&个字符时,它会导出完全可用的Excel文件。那么,你是如何生成Excel文件的?你是什么类型的Excel文件ting?!如果您正在生成XML,
&
是一个特殊字符,需要根据XML规范转义到
&
。如果您使用的是XML编写器库,这应该会自动发生。我已经编辑了我的问题,希望它现在更有意义……然后您需要根据XML转义规则转义所有数据。再见在中,最好的方法是使用一个XML编写器工具,让您对此感到担忧。首先,感谢您的回答。现在,如果我只有&个字符,这将非常好,这会给我带来麻烦。但问题是,我有一些已经没有问题的&字符,我上面提到过。因此,如果我使用stru替换,这将d改变给我带来麻烦的和不给我带来麻烦的。你可以尝试用str\u replace(“&”、“\&”、$name)
,只改变独立的&