Nl2br в данных, кроме тегов ‹li›

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

Мне удалось сделать это эффективно с помощью white-space: pre-wrap в CSS, за исключением IE7 и младше.

Моя проблема заключается в том, что если я добавлю условный nl2br() к данным, если браузер ‹=IE7, то это создаст разрывы строк в тегах <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>';
          }
    ...

person bozdoz    schedule 11.07.2011    source источник


Ответы (1)


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

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

person mj7    schedule 11.07.2011
comment
И разве wpautop() не работает так, как вы хотите? - напр. echo '‹p›'.wpautop($row['post_content']).'‹/p›'; - очевидно, вам нужно вынуть CSS - person mj7; 11.07.2011
comment
На самом деле вам не нужно оборачивать его в теги P. - person mj7; 11.07.2011
comment
Это сработало! Спасибо. Я не знал о функции wpautop. Не удалось найти. Я впервые с WordPress. Это тоже похоже на довольно большую функцию. Я, наверное, не догадался напечатать все это. :) - person bozdoz; 11.07.2011
comment
Не беспокойтесь - рад, что это сработало. Я должен признать, что мне потребовались годы, чтобы найти эту функцию в первый раз, когда она мне понадобилась - по какой-то странной причине это не очень хорошо опубликованная функция. - person mj7; 11.07.2011