修剪Php数组中的文本

时间:2014-10-31 07:47:44

标签: php arrays magento

这就是我所拥有的:

<?php
    echo "<ul class='frony-feat-img'>";
    while ($row = $readresult->fetch() ) {  ?>
        <?php
            printf ('<li class="blog-post">
                <h3><a href="/%1$s/%2$s">%3$s</a></h3>
                <img src="/media/%5$s" width="" height="" alt="" />
                %4$s
                <a class="read-post" href="/%1$s/%2$s">Read More</a>
            </li>',
                $blog_url,
                $row['identifier'],
                $row['title'],
                $row['short_content'],
                $row['featured_image']
            );
        }
    echo "</ul>";
?>

我想将$ row [&#39; short_content&#39;]的长度修剪为某个字符串长度,并在最后添加[...]。如果不从数组中取回返回的值,我该怎么做?

如果我的问题有意义,请告诉我!?感谢。

1 个答案:

答案 0 :(得分:2)

$row['title']替换为:

strlen($row['title']) > 10 ? substr($row['title'], 0, 10) . '[...]' : $row['title'];

注意:某些字符串长度当然是10。

示例:

$row['title'] = 'abcdef';
echo strlen($row['title']) > 10 ? substr($row['title'], 0, 10) . '[...]' : $row['title'];

echo '<br/>';

$row['title'] = 'abcdefghijkl';
echo strlen($row['title']) > 10 ? substr($row['title'], 0, 10) . '[...]' : $row['title'];

返回:

abcdef
abcdefghij[...]

注意:

您应该创建一个帮助程序来执行此操作,例如:

function truncate($string, $length) {
  return strlen($string) > $length ? substr($string, 0, $length) . '[...]' : $string;
}

然后以这种方式使用它:

           (...)
            $blog_url,
            truncate($row['identifier'], 10),
            truncate($row['title'], 10),
            truncate($row['short_content'], 10),
            truncate($row['featured_image'], 10),
        );