【问题标题】:My PHP code is writing all orders into one line and I don't know, why? [duplicate]我的 PHP 代码将所有订单写入一行,我不知道,为什么? [复制]
【发布时间】:2018-11-19 19:53:06
【问题描述】:

我希望我的代码将每个订单写入一个单独的新行,但它现在不适用于我的代码。有人可以解释一下我做错了什么吗?

    <!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Rendelési eredmények</title>
    <link href="https://fonts.googleapis.com/css?family=Merriweather" rel="stylesheet">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
    <script src="main.js"></script>
</head>
<body>
    <h1>Rendelési eredmények: </h1>
</body>
</html>
<?php
    $abroncs_db = $_POST['abroncs_db'];
    $olaj_db = $_POST['olaj_db'];
    $gyertya_db = $_POST['gyertya_db'];
    @$fp = fopen("C:\\wamp64\\www\\bob\\rendelesek.txt", 'ab');
    $datum = date('H:i jS F Y');
    #$honnan_hallott_rolunk = $_POST['honnan_hallott_rolunk'];
    $osszmennyiseg = $abroncs_db + $olaj_db + $gyertya_db; 
    $szallitasi_cim = $_POST['szallitasi_cim'];
    define('ABRONCSAR', 100);
    define('OLAJAR', 10);
    define('GYERTYAAR', 4);

    if ($osszmennyiseg == 0) {
        echo '<p class="warning">Ön egyetlen tárgyat sem rendelt az előző oldalon.</p>';
    } else {
    echo "<p>Rendelés feldolgozásának időpontja: ".date('H:i jS F Y')."</p>";
    /* if ($honnan_hallott_rolunk == "a") {
        echo 'Ön visszatérő vásárló Bobnál.';
    } else if ($honnan_hallott_rolunk == "b") {
        echo 'Ön internetes hirdetés útján talált rá Bobra.';
    } else if ($honnan_hallott_rolunk == "c") {
        echo 'Ön tévéreklám által talált rá Bobra.';
    } else if ($honnan_hallott_rolunk == "d") {
        echo 'Ön egy ismerőse által hallott Bobról.';
    } */
    echo '<p>Rendelés összegzése: </p>';
    echo $abroncs_db.' darab gumiabroncs, <br/>';
    echo $olaj_db.' darab olaj, <br/>';
    echo $gyertya_db.' darab gyújtógyertya. <br/>';

    echo '<hr width="50" align="left">';
    $vegosszeg = ABRONCSAR * $abroncs_db +
    OLAJAR * $olaj_db +
    GYERTYAAR * $gyertya_db;
    echo 'Összesen: '.$osszmennyiseg.' darab tétel, amelyeknek ára '. $vegosszeg. "$." ;
    }
    $kimeneti_sztring = $datum."\t".$abroncs_db." gumiabroncs \t".$olaj_db." olaj\t"
    .$gyertya_db." gyújtógyertya\t\$".$vegosszeg."\t". $szallitasi_cim."\n";
    fwrite($fp, $kimeneti_sztring);
?>

我查看了许多其他类似我的问题的论坛,但我找不到解决这个问题的好方法。如果有人可以帮助我,谢谢!

【问题讨论】:

  • &lt;/html&gt; 之后的 HTML 标记不正确。哪些行被组合在一起?此外,如果这是 Windows,我相信 \n 应该是 \n\r
  • 您似乎混合了&lt;br/&gt;\n 的回声。始终使用&lt;br /&gt;,您的内容应该都在不同的行上。此外,您真的不应该在本地文件上运行 fopen()(这在服务器上不起作用),并且您可能还想检查您的 $_POST 数据是否已设置。
  • 使用PHP_EOL 而不是"\n" 那么不管是在Windows 还是Unix 上运行
  • 另外请记住,如果您将其移动到 unix 服务器 C:\\wamp64\\www\\bob\\rendelesek.txt 将不存在。而是使用像 'rendelesek.txt''bob/rendelesek.txt' 这样的相对路径,也总是使用 unix /,如果 PHP 在 Windows 机器上看到你,它将完成所有转换

标签: php html file web


【解决方案1】:

我猜你是在 Windows 的记事本中打开生成的文本文件?

记事本需要 Windows 样式的 CRLF 行尾。你只是在输出一个 LF (\n)。

要让记事本显示换行符,请将\r\n 写入文件,而不仅仅是\n

【讨论】:

    【解决方案2】:

    不要使用\n,而是使用&lt;br /&gt; 在 HTML 文档中获取新行。如果您想显示一些 .txt 文件,您还应该将 \n 更改为 &lt;br /&gt;,然后再将其放入 html 文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-05
      • 2017-04-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-26
      • 2019-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多