如何在 div 中显示字符串中的前两个单词并保留在其他范围 php 中?
How to display first two words from string in div and remaining in other span php?
我想在不同的 div 和跨度中显示字符串,但无法做到这一点。我正在使用下面的代码来做到这一点,但它不起作用。谁能帮我解决问题?
想这样显示:
输入字符串:Lorem ispum dolor text si sample dummy text。
输出:Lorem ispum dolor text si 样本虚拟文本。
if(!empty($extraData['heading_text']) && str_word_count($extraData['heading_text']) >= 3) :
$getwords = explode(" ", $extraData['heading_text']);
echo $getwords[0].' '.$getwords[1] .' '.'<span>'.$getwords[2]. '</span>';
unset($getwords[0]);
unset($getwords[1]);
unset($getwords[2]);
echo implode(" ", array_values($getwords));
else :
echo $extraData['heading_text'];
endif;
嗯,提取并输出你感兴趣的token:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
preg_match('/^(\w+\s+\w+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
输出显然是:
<div>Lorem ispum</div>
<span>dolor text si sample dummy text.</span>
当然也可以使用 explode()
,但要复杂得多:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
$word = explode(" ", $input);
echo sprintf("<div>%s %s</div>\n", $word[0], $word[1]);
unset($word[0]);
unset($word[1]);
echo sprintf("<span>%s</span>\n", implode(" ", $word));
更新:
第一种选择,基于正则表达式,只适用于 true "words",定义非常严格。您可以稍微 "weaker" 通过稍微改变表达式来实现严格的行为:
<?php
$input = "What we've Done";
preg_match('/^([^\s]+\s+[^\s]+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
经过修改后,输出再次符合预期:
<div>What we've</div>
<span>Done</span>
我想在不同的 div 和跨度中显示字符串,但无法做到这一点。我正在使用下面的代码来做到这一点,但它不起作用。谁能帮我解决问题?
想这样显示:
输入字符串:Lorem ispum dolor text si sample dummy text。
输出:Lorem ispum dolor text si 样本虚拟文本。
if(!empty($extraData['heading_text']) && str_word_count($extraData['heading_text']) >= 3) :
$getwords = explode(" ", $extraData['heading_text']);
echo $getwords[0].' '.$getwords[1] .' '.'<span>'.$getwords[2]. '</span>';
unset($getwords[0]);
unset($getwords[1]);
unset($getwords[2]);
echo implode(" ", array_values($getwords));
else :
echo $extraData['heading_text'];
endif;
嗯,提取并输出你感兴趣的token:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
preg_match('/^(\w+\s+\w+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
输出显然是:
<div>Lorem ispum</div>
<span>dolor text si sample dummy text.</span>
当然也可以使用 explode()
,但要复杂得多:
<?php
$input = "Lorem ispum dolor text si sample dummy text.";
$word = explode(" ", $input);
echo sprintf("<div>%s %s</div>\n", $word[0], $word[1]);
unset($word[0]);
unset($word[1]);
echo sprintf("<span>%s</span>\n", implode(" ", $word));
更新:
第一种选择,基于正则表达式,只适用于 true "words",定义非常严格。您可以稍微 "weaker" 通过稍微改变表达式来实现严格的行为:
<?php
$input = "What we've Done";
preg_match('/^([^\s]+\s+[^\s]+)\s+(.*)$/', $input, $token);
echo sprintf("<div>%s</div>\n<span>%s</span>\n", $token[1], $token[2]);
经过修改后,输出再次符合预期:
<div>What we've</div>
<span>Done</span>