1

我有一段代码显示了我网页上的前 20 个单词。

$arrtext = explode( ' ', stripslashes( str_replace('\n',chr(10),str_replace('\r',chr(13),$row['text']))), $config['length_story'] + 1);

$arrtext[ $config['length_story'] ] = '';

$row['headtext'] = trim(implode( ' ', $arrtext)) . '...';

这很好用,但我也想显示剩余文本而不重复前 20 个单词,我该怎么做?

4

2 回答 2

1

就个人而言,我会做这样的事情:

$story = $row['text']; // apply whatever here, `stripslashes`, `sre_replace`...
preg_match("/^((?:\S+\s+){20})(.*)$/",$story,$match);
if( $match)
    $result = Array($match[1],$match[2]);
else
    $result = Array($story,"");

现在$result包含两个元素:第一个元素是故事的前20个字,第二个是后面的一切。

于 2012-07-13T14:24:30.257 回答
1

无需重写任何内容,只需保存

$arrtext[ $config['length_story'] ] = '';

在覆盖它之前。它已经包含剩余的文本

$remaining = $arrtext[ $config['length_story'] ];
$arrtext[ $config['length_story'] ] = '';
于 2012-07-13T14:27:06.510 回答