Nl2br по данным, кроме тегов <li> - PullRequest
0 голосов
/ 11 июля 2011

Я хотел бы иметь возможность получать данные в формате html из mysql и превращать новые строки в теги <br> или <p>.

Я смог сделать это эффективно с white-space: pre-wrap в CSS, за исключением IE7 и ниже.

Моя проблема заключается в том, что если я помещу условные nl2br () в данные, если браузер <= IE7, то это приведет к разрывам строк в тегах <code><li>, которые уже имеют разрывы строк, создавая дополнительное пространство между пули.

Есть ли лучший способ сделать это?

Моя тестовая страница:

http://logblog.net84.net/

И мой код (на данный момент):

...
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        </head>
        <style>
        p { white-space:pre-wrap;white-space:-moz-pre-wrap;word-wrap:break-word }
        </style>
        <body>
        <?php 
...
        $conn = mysql_connect($host, $user, $pw) or die('Error connecting to mysql');
        mysql_select_db($db);
        mysql_set_charset('utf8', $conn);
        $result = mysql_query("SELECT * FROM wp_posts WHERE post_status='publish' AND post_type='post'");

        while($row = mysql_fetch_array($result))
          {
          echo '<h2>'.$row['post_title'].'</h2>'; 
          echo '<p>'.$row['post_content'].'</p>';
          }
    ...

1 Ответ

2 голосов
/ 11 июля 2011

Вы пытаетесь обойти автоматическую замену абзаца WordPress? Если да, то для вас есть встроенная функция - http://codex.wordpress.org/Function_Reference/wpautop

Если нет, то можете ли вы быть более конкретным - похоже, что ссылка на вашу тестовую страницу не появилась в сообщении?

...