我从系统(Magento)输出了如下字符串(产品描述):
Lorem ipsum dolor坐好了,敬请光临。像皮伦特斯一样坐着,不坐着。[医]南劳瑞特白喉。库拉比图尔,孕妇在乳化液中,前长石。兼社会、自然、教育和马格尼斯的临产蒙太斯、鼻窦炎。[医]中华绒螯蟹。作者声明: Phasellus congue tortor,vel efficitur consectetur eu.泌乳素乳酸菌,前庭乳汁同坐,门脉浮肿。Ut三位一体,圣洁的明渠在塞勒日克。马萨·乌斯金红石的后果。[医]乳状前庭
然而,我只想得到第一个x字数,或者直到第一个段落(不幸的是,我们使用的系统使用双<br><br>标记创建段落)。
我使用了this答案来创建以下内容:
echo preg_replace( '/((\w+\W*){'.$numberOfWords.'}(\w+))(.*)/', '${1}', $processor->filter($description) );然而,这不包括段落。我尝试在上面使用一个答案here,不幸的是我无法让它工作(只是返回完整的未截断字符串-可能是因为我缺乏正则表达式的能力!)这里有人能帮我吗?
发布于 2017-01-05 09:37:41
好的,如果你需要在(第一段)和(n段)之间最短,你必须取第一段,然后用n个词来限制它。类似于:
$first_p = preg_replace(
'/^(.*?)<br><br>.*$/s', // Not tested, but it should be something like that
'\\1',
$processor->filter($description)
);现在,$first_p包含您的第一段。只需显示这一段的前n个单词:
echo preg_replace( '/((\w+\W*){'.$numberOfWords.'}(\w+))(.*)/', '${1}', $first_p );希望能帮上忙。
发布于 2017-01-05 10:58:59
只需执行以下操作即可解决:
$descriptionStripped = preg_replace( '/((\w+\W*){'.$numberOfWords.'}(\w+))(.*)/', '${1}', $processor->filter($description) );
$descriptionFirstPara = explode("<br><br>", $descriptionStripped);
echo $descriptionFirstPara[0];https://stackoverflow.com/questions/41481309
复制相似问题