【问题标题】:retrieving an xml file from mysql and using it in as a variable with php从 mysql 检索 xml 文件并将其用作 php 的变量
【发布时间】:2016-01-04 21:39:09
【问题描述】:

我正在从数据库中检索 XML 代码并将其作为变量存储在 php.ini 中。但是,当我尝试在 XML 代码中使用此变量时,它给了我一个错误。这是我的代码:

<?php

          $conn = mysqli_connect('localhost', 'root', '', 'thisdatabase');
          $result = mysqli_query($conn, 'SELECT * FROM createdproduct');
          while ($row = mysqli_fetch_assoc($result))
          {
            //$selected = (isset($_POST['list']) && $_POST['list'] ==  $row['id']) ? 'selected' : '';
              //echo htmlentities($row["productURL"]);
              $test = htmlspecialchars($row["productURL"]);
          }


          //echo htmlentities($test);
?>

这是我用 php 包裹的 XML:

<?php
//some code

    $xml = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <order xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://api.mydomain.net">
        <orderItems>
            '.$test.'
        </orderItems>
        <payment>
            <type>typ</type>
        </payment>
<shipping>
    <shippingType id="00"/>
     <address type="private">
        <person> <
            <salution id="1"/>
            <firstName>person</firstName>
            <lastName>person</lastName>
        </person>
        <street>street</street>
        <houseNumber>00</houseNumber>
        <city>city</city>
        <country code="US">USA</country>
        <state code="mm">California</state>
        <zipCode>111</zipCode>
        <email>aaa@mydomain.net</email>
        <phone>+49 341 789 123</phone>
        <fax>+49 341 789 123</fax>
    </address>
</shipping>
    </order>';
//some code

?>

【问题讨论】:

  • 包含您的错误可能有助于其他人识别问题。
  • @InbetweenWeekends 这是我从 api 得到的错误:{"message":"Some Error\n","curlRequest":"curl -i -L --compressed -H \"Accept -编码:gzip,deflate\"
  • 如果您执行$test = 'product name'; 之类的操作,是否仍会产生错误?
  • @camelCase 我必须使用 htmlentities,因为我正在检索使用 html 标签的 XML 代码。
  • 确保 $test 不包含需要编码的 XML 保留字符:&gt;, &lt;, &amp;, %

标签: php mysql xml api


【解决方案1】:

您的错误代码相当通用,但我怀疑问题出在您从数据库中提取并在 $test 变量中使用的数据中。

如上所述,您可以尝试使用一个简单的词代替实际数据来确认这一点,例如:$test = 'something';。我认为这是问题的原因是因为htmlentities() 旨在用于 HTML,而不是 XML。

您可以考虑改用htmlspecialchars()

编辑:我知道我在某处读过此内容,请查看this post out 了解更多详细信息。

【讨论】:

    【解决方案2】:

    我能够使用html_entity_decode 获得我想要的结果。谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      相关资源
      最近更新 更多