【问题标题】:cakephp 2.X newline not workingcakephp 2.X 换行不工作
【发布时间】:2017-08-24 14:52:47
【问题描述】:

我尝试过使用 html br 标签、“\r\n”和 PHP_EOL,但我的表格数据不会换行。我不明白为什么它只是将它附加到一行而不是回车。

这是它当前如何显示我的数据的图像:

<table>
    <tr>
        <th>Article</th>
        <th>Action</th>
    </tr>

    <?php
      foreach ($posts as $post):
    ?>
       <tr>
            <td>    
<?php
    echo $this->Html->link($this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid') 
         . " - " . $post['Post']['article_title'] 
         . PHP_EOL . "<br />\n" . "\r\n" 
         . $post['Post']['article_link'], array(
        'controller' => 'posts',
        'action' => 'view',
        'inline' => false,
        'escape' => false,
        $post['Post']['id']
    ));
?>

            </td>

<td>
<?php
    echo $this->Html->link('Edit', array(
        'action' => 'edit',
        $post['Post']['id']
    ));
?>
<?php
    echo $this->Form->postLink('Delete', array(
        'action' => 'delete',
        $post['Post']['id']
    ), array(
        'confirm' => 'Are you sure?'
    ));
?>
           </td>
        </tr>
    <?php
endforeach;
?>
   <?php
unset($post);
?>
</table>

【问题讨论】:

    标签: php html cakephp newline cakephp-2.x


    【解决方案1】:

    escape 之类的选项在HtmlHelper::link() 的$options 参数中传递,即第三个参数。第二个参数仅用于 URL。

    还要注意,当你禁用自动转义时,你应该手动转义相关部分以避免XSS。

    echo $this->Html->link(
        $this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid')
            . " - "
            . h($post['Post']['article_title']) // escape manually
            . "<br />"
            . h($post['Post']['article_link']),  // escape manually
        array(
            'controller' => 'posts',
            'action' => 'view',
            $post['Post']['id']
        ),
        array(
            'inline' => false,
            'escape' => false
        )
    );
    

    另请参阅Cookbook > Core Libraries > Helpers > Html > HtmlHelper::link()

    【讨论】:

    • 感谢您提供的参考资料!应尝试仔细放置转义符以避免跨站点脚本。
    【解决方案2】:

    将'escape' =&gt; false 添加到您的链接选项以转义 html 字符。这将允许您使用&lt;br&gt;。

        echo $this->Html->link($this->Time->format($post['Post']['created'], '%d %b %Y', 'invalid') 
             . " - " . $post['Post']['article_title'] 
             . PHP_EOL . "<br />\n" . "\r\n" 
             . $post['Post']['article_link'],
             array(
                'controller' => 'posts',
                'action' => 'view',
                'inline' => false,
                'escape' => false, // move this
                $post['Post']['id']
            ),
            array(
                'escape' => false // to here
            )
        );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2017-08-12
      相关资源
      最近更新 更多