【问题标题】:New line not working新线路不工作
【发布时间】:2015-06-04 10:03:31
【问题描述】:

说明:

我有以下代码:

        if(isset($riskTriggerFlag) && $riskTriggerFlag==1) // if risk_mitigator process reads and offer weight is  maintained based on offer mentioned.
        {
            echo "Risk Weight: ".$risk_weight ."\n";
            $randNo = rand(1,100);

            echo "Random Weight: ". $randNo ."\n";
            if($randNo < intval(100 - $risk_weight))
            {
                $flagThrowPostback = 1;
            }
        }

如你所见,我将\n放在文本中,但在这件事上仍然是打印出来的消息:

Risk Weight: 20 Random Weight: 20 

我做错了什么?

注意:

我不能使用 br 标记nl2br() 因为整个页面只是一个 php 页面,而我没有想要添加任何 html 标签

浏览器上的输出如下:

<html>
<head></head>
<body>Multiple row Risk Weight: 20 Random Weight: 20 </body>
</html>

【问题讨论】:

  • PHP_EOL 应该可以正常工作。
  • 所以当你在浏览器中查看输出时,你必须使用br 标签。或者你把你的输出放到pre标签中,然后你可以使用你的\n
  • 我认为更好的方法是检查 php 文件是从 CLI 还是浏览器执行的。如果它来自浏览器,则使用
    else newline.
  • @Saswat 在您使用\n 之前,您有echo "&lt;pre&gt;"; 吗?
  • 我们无法从您最初的问题中猜到这一点...我的建议现在您已经解释了这一点,如果您不想要任何额外的标签(甚至是&lt;pre&gt;),那就去吧对于基于this one 的javascript 解决方案,仅针对特定父项中包含的文本,例如可以基于css 类进行过滤。例如,您还可以在 PHP 中使用由某些查询字符串参数激活的标志来选择“测试模式”,这将在测试模式下运行时有条件地添加一些 nl2br()calls

标签: php


【解决方案1】:

我认为更好的方法是检查 php 文件是从 CLI 还是浏览器执行。如果它来自浏览器,请使用
else newline。

$newline = "<br />";
if (PHP_SAPI === 'cli')
{
   // ...
   $newline = "\n";
} 
if(isset($riskTriggerFlag) && $riskTriggerFlag==1) // if risk_mitigator process reads and offer weight is  maintained based on offer mentioned.
    {
        echo "Risk Weight: ".$risk_weight . $newline;
        $randNo = rand(1,100);

        echo "Random Weight: ". $randNo . $newline;
        if($randNo < intval(100 - $risk_weight))
        {
            $flagThrowPostback = 1;
        }
    }

【讨论】:

    猜你喜欢
    • 2013-02-04
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 2017-05-10
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多