在PHP中包含的XML中添加换行符

时间:2015-06-14 18:38:22

标签: php xml rss

我正在使用PHP创建XML RSS提要以从数据库中提取数据。因此,我的XML包含在php中。我想在<description>

中的每个变量之间添加换行符
echo '<item>';
echo '<title>' . $product_name . '</title>';
echo ' <link>http://www.....com</link>';
echo '<description>' . $product_line . ' ' . $product_scale . ' ' . $product_vendor . ' ' . $product_description . ' $' . $buy_price . '</description>';
echo '</item>';

我尝试在<br >标记中的每个变量之后添加"<br />"<description>,但这样可以防止任何XML / RSS数据在页面上运行。

我知道我可以添加<xml>标签,但这里的格式不同,因为XML是在PHP中回显的。有没有办法在PHP echo中包含的XML中添加换行符?

如果需要,这是整个脚本:

<?php header('Content-Type: text/xml'); ?>
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>

    <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
        <channel>
            <title>Classic Cars RSS</title>
            <atom:link href="http://<?= $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'] ?>" rel ="self" type="application/rss+xml" />
            <description>Classic Cars RSS Feed for learning PHP</description>
            <lastBuildDate><?= $builddate ?></lastBuildDate>
            <language>en-us</language>
        <?php

        define('DB_LOCATION', 'x');
        define('DB_USERNAME', 'x');
        define('DB_PASS', 'x');
        define('DB_NAME', 'x');

        $dbc = mysqli_connect(DB_LOCATION, DB_USERNAME, DB_PASS, DB_NAME)
            or die('Error connecting to database');

        $query = "SELECT productName, productLine, productScale, productVendor, productDescription, buyPrice FROM products WHERE `productLine` = 'Vintage Cars' OR `productLine` = 'Trains'";
        $result = mysqli_query($dbc, $query)
                or die('Error querying request');

                  while ($row = mysqli_fetch_array($result)) { 
                    $product_name = $row['productName'];
                    $product_line = $row['productLine'];
                    $product_scale = $row['productScale'];
                    $product_vendor = $row['productVendor'];
                    $product_description = $row['productDescription'];
                    $buy_price = $row['buyPrice'];

            echo '<item>';
            echo '<title>' . $product_name . '</title>';
            echo ' <link>http://www.test.ishabagha.com</link>';
            echo '<description>' . $product_line . ' ' . $product_scale . ' ' . $product_vendor . ' ' . $product_description . ' $' . $buy_price . '</description>';
            echo '</item>';

          }
        ?>

            </channel>
        </rss>

2 个答案:

答案 0 :(得分:0)

您可以使用带换行符的单个回音:

echo 'line1
line2';

或者使用\ n

echo "line1\nline2"; //you need doublequotes when using \n

答案 1 :(得分:0)

您可以使用

echo "\n";

每当你想要一条新线时。