我只希望将已上载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>';
答案 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>