使用上标文本存储和显示文本

时间:2011-11-17 07:19:55

标签: php mysql carriage-return superscript

我将以下数据存储在mysql表的“call_dtls”字段中。此数据存储为TEXT数据类型。使用来自PHP生成页面的<textarea>控件提交数据。

用于在mysql中存储数据的代码:

$mycalltext = mysql_real_escape_string($_POST['text']);
// then storing $mycalltext in the table

存储在表中的数据(每行存储在单独的表行中):

SANDY505™ (09-11-11 10:04:47): buy hinduniliver around 385-383 sl 380 trgt 390-393
SANDY505™ (09-11-11 10:05:57): buy tatasteel around 472-468 sl 464 trgt 476-480
SANDY505™ (09-11-11 10:06:09): buy nifty around 5295-5280 sl 5260 trgt 5320

当其他页面稍后获取并显示数据时,™将被替换为 ,并且所有内容都显示为单行(忽略换行符)。例如:

SANDY505� (09-11-11 10:04:47): buy hinduniliver around 385-383 sl 380 trgt 390-393 SANDY505� (09-11-11 10:05:57): buy tatasteel around 472-468 sl 464 trgt 476-480 SANDY505� (09-11-11 10:06:09): buy nifty around 5295-5280 sl 5260 trgt 5320 

我希望输出为(包括换行符):

SANDY505™ (09-11-11 10:04:47): buy hinduniliver around 385-383 sl 380 trgt 390-393
SANDY505™ (09-11-11 10:05:57): buy tatasteel around 472-468 sl 464 trgt 476-480
SANDY505™ (09-11-11 10:06:09): buy nifty around 5295-5280 sl 5260 trgt 5320

产生输出的代码:

$rs=mysql_query("Select * from mya_calls", $cn) or die("MySQL error: ".mysql_errno());
$number=mysql_num_rows($rs); 
while ($rsitem=mysql_fetch_object($rs)) 
    echo $rsitem->call_dtls;

3 个答案:

答案 0 :(得分:1)

仔细检查数据库连接编码和输出HTML的编码是否与数据库中的编码匹配(可能是UTF-8)

数据库连接:

mysql_query('SET CHARACTER SET utf8, NAMES utf8');

输出标题:

header('Content-type: text/html;charset=utf-8');

HTML:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

答案 1 :(得分:0)

得到它......: - )

php函数nl2br()为我做了这个。解决了这两个问题......

通过Google搜索获得此信息,并在this site

找到解决方案

感谢@outis有关错误消息的解释。

答案 2 :(得分:0)

通常,HTML中的white-space会折叠。异常位于<pre>元素和CSS white-space属性不是“正常”的元素内(特别是,仅当white-space为“pre”时才会保留换行符,“预包装“和”预行“)。

在多行上显示内容是一个演示问题;不要使用HTML来获得你想要的效果。相反,选择最合适的元素来定义数据的结构。例如,样本看起来是无序列表,在这种情况下<ul>是合适的。

try {
    $result = $db->query("SELECT call_dtls FROM mya_calls");
    $result->setFetchMode(PDO::FETCH_CLASS, 'StdClass');
    ?>
    <ul>
      <?php foreach ($result as $item) { ?>
        <li><?php echo $item->call_dtls; ?></li>
      <?php } ?>
    </ul>
    <?php
} catch (PDOException $exc) {
    ...
}

完成后,如有必要,使用CSS设置元素的样式。

请注意,示例代码是如何在HTML输出中使用语义元素并且不一定适用于生产代码的示例。在开发过程中,应将不同的concerns分成不同的模块。