减少从数据库中检索的字符串长度

时间:2013-09-21 10:01:56

标签: javascript php mysql string

我正在获取标题和行的行它来自MySQL数据库的描述。 我想改变从数据库中获得的字符串。

<div class="title"><?php $row['title']?></div>
<div class="details"><?php $row['desc']?></div>

请告诉我,如何将javascript应用于此内容( $ row ['..'] )?意思是,我如何在Javascript中访问这些字符串?

如果字符串长度超过50个字符,我想限制字符串&amp;为它添加点(...)。

5 个答案:

答案 0 :(得分:1)

最好使用 mb_substr() 而不是 substr()

<?php
echo mb_substr($row['title'],0,50);

<强> Source

答案 1 :(得分:0)

您可以使用substr

执行此操作
<?php echo (strlen($row['desc']) > 50) ? substr ($row['desc'] , 0, 50 ).'...' : $row['desc']; ?>

答案 2 :(得分:0)

为什么这样? Html有一个CSS。你可以修改宽度并添加“text-overflow:ellipsis”。

试试这个:

<div class="fixedWidth title"><?php $row['title']?></div>
<div class="fixedWidth details"><?php $row['desc']?></div>

<style>
    .fixedWidth{
        width:200px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow:ellipsis;
    }
</style>

答案 3 :(得分:0)

如果您正在处理非ASCII字符串并且想要操作那些字符串,则使用substr()是错误的。相反,您应该使用多字节字符串函数,例如mb_substr()others

为此,您必须为PHP启用mbstring-extension。见http://php.net/manual/en/mbstring.installation.php

我也不会直接使用javascript回显字符串 - 你永远不知道字符可能在那里然后你应该开始逃避一些字符以便与javascript一起正常工作。

相反,我鼓励您使用json_encode。这将正确地逃脱所有特殊和UTF8字符。 必须为json_ *函数启用PECL的json扩展。见http://php.net/manual/en/json.installation.php

当然,如果你使用Zend - 框架,那么正确使用Zend_Json::encode()

<?php 
    $maxLength = 50;
    $encoding = 'UTF-8';
    $tail = ' ...';
    $row['desc'] = (mb_strlen($row['desc'], $encoding) > $maxLength) ? mb_substr($row['desc'], 0, $maxLength, $encoding) . $tail : $row['desc'];

?>
<script type="text/javascript">
    var rowData = <?php echo json_encode($row); ?>;
    alert(rowData.desc);
</script>

答案 4 :(得分:0)

为什么不尝试使用目录php脚本而不是javascript。 你可以按照下面这样做。

<div class="title"><?php echo $title = strlen($row['title']) > 50 ? substr($row['title'], 0, 50)."..." : $row['title']; ?></div>

然后你也可以在javascript中获得标题。

$(document).ready(function(){

 var title = $(".title").text();

});