缩短查询中的文本

时间:2017-11-23 20:52:34

标签: php mysql

我希望其中一位大师可以提供帮助(请!)

我希望此查询中的文本(link_text)缩短为28个字符?

$sources_html .= '<a href="'.$row_sources["url"].'">'.$row_sources["link_text"].'</a>';

COMPLETE QUERY

$sql = "SELECT * FROM sources WHERE CatID='$id' order by source_id";

$result4=mysqli_query($db,$sql) or die(mysqli_error($db));
$sources_html='';
while($row_sources = mysqli_fetch_array($result4)){
$sources_html .= '<a 
href="'.$row_sources["url"].'">'.$row_sources["link_text"].'</a>';
}

<?  if($sources_html){echo "$sources_html";}?>

3 个答案:

答案 0 :(得分:0)

您可以使用以下功能之一 substr mb_substr

对于每个char只有一个字节的文本,您可以使用

$linkText28 = substr($row_sources["link_text"], 0, 28);

用于多字节字符串而不是

$linkText28 = mb_substr($row_sources["link_text"], 0, 28);

详见:

http://php.net/manual/en/function.substr.php

http://php.net/manual/en/function.mb-substr.php

答案 1 :(得分:0)

在将链接附加到$sources_html之前,我会查找并编辑该值,如下所示:

if(strlen($row_sources["link_text"]>28)){
    $row_sources["link_text"] = substr($row_sources["link_text"], 0, 25).'...';
}

我正在使用 25 ,因为我用点(...)替换最后3个字符,以便更好地理解字符串被切碎,直到你......:P

如果您使用UTF-8字符,则可能需要mb_substring

答案 2 :(得分:0)

$ sources_html。=''。$ row_sources [“link_text”] = substr($ row_sources [“link_text”],0,25).'...'。'';