仅显示60个字,数据库包含100个字

时间:2019-03-31 07:11:19

标签: php mysql

我只希望将已上载100个单词的'$ output'的前60个单词显示在我的页面上,最简单的方法是什么?

我希望$ output [] =“ description只从数据库中获取前60个单词。 **我尝试了很多方法,但不适用于我**

$output[]="<td>";
        $output[]="<img src='images/".$row_2[3]."' width=50 />";
        $output[]='</td>';
        $output[]='<td>';
        $output[]="Name:$row_2[1]<br>";
        $output[]="Price:$row_2[2]<br>";
        $output[]="Description:$row_2[5]<br>";
        $output[]="<a href=user.php?prdcod=$row_2[0]&usrcod=$usrcod>Add To Wishlist</a><br>";
        $output[]="<a href=purchase.php?prdcod=$row_2[0]&usercod=$usrcod&action=Add>Purchase</a>";
        $output[]='</td>';

3 个答案:

答案 0 :(得分:2)

如果您对单词的定义是字母和/或数字以及其他字符,并用空格隔开,则可以使用explode分隔它们,然后切出前60个并将其内插回字符串。

echo implode(" ", array_slice(explode(" ", $stringOf100Words), 0, 60));

在此处查看示例:https://3v4l.org/D4nqJ

如果字符串包含双精度空格,则需要使用preg_split,并用"/\s+/"分割成任意数量的空格。

implode(" ", array_slice(preg_split("/\s+/", $str), 0, 60));

答案 1 :(得分:1)

其他答案不考虑插入符号或它们计数字母。这是一个小功能:

function get60Words(string $str) {
    $words = str_word_count($str, 2);
    $cnt = 0;
    foreach($words as $strPos => $v) {
        if($cnt++ === 60) {
            return substr($str, 0, $strPos-1);
        }
    }

    return $str;
}

它获取字符串的单词,获取第60个单词的位置并返回子字符串。

这是一个包含5个单词的有效示例:https://3v4l.org/N6J2R

答案 2 :(得分:-1)

您可以使用MYSQL SUBSTRING()从字符串中提取60个字符。考虑到您的查询,它应该看起来像这样

SELECT *, SUBSTRING(<COLUMN NAME>, 1, 60) AS ExractedString FROM tbprd WHERE prdcatcod='$catcod' AND prdavlsts LIKE '%Y%'

用要从中提取60个字符的列名替换<COLUMN NAME>