在某个字符点剪切从数据库驱动的文本的一部分


Cutting part of a text driven from DB at certain character point?

好吧,我有这些(部分)文章是从DB驱动的。这个查询抓取了新闻的一小部分,作为网站访问者阅读新闻的调侃。

这个问题的问题是一个词分手(在某些或许多情况下)。示例:

//$DBdata = 'In this case, customers have been asking to develop something.';    
//$DBdata = 'During certain expertize experts were those who were expertized lol.';    
$rsql = "SELECT *, SUBSTRING(a.article, 1, 10) AS article..
$rsql['article'] = 'In this ca';
$rsql['article'] = 'During cer';

当然,我是从DB得到的:"在这个ca中"《在cer期间》

但我想回显-"在此""在"期间"

那么如何通过PHP解决这个问题呢?要回溯到第一个空格并重复它,不管字符中的xy单词长度如何?

Thx。

正如您在上一段中所述,一种解决方案是识别字符串结果中的最后一个空白字符。使用CCD_ 1可以很容易地做到这一点。

$pos = strrpos($rsql['article'],' ');
if ($pos !== false) {
    $cleanStr = substr($rsql['article'],0,$pos);
} else {
    // String contains no white space - decide what to do then here...
}

使用SUBSTRING()和LOCATE()可以很容易地在纯MySQL中完成。使用locate查找空间(具有已定义的偏移量,因此它找不到第一个,例如25),并在SUBSTRING中使用返回值。

试试这个兄弟。。

SELECT *,LEFT(SUBSTR(a.article,1,10), (LENGTH(SUBSTR(a.article,1,10)) - LOCATE(' ', REVERSE(SUBSTR(a.article,1,10)))+1)) FROM table your_conditions

这将为您提供sqlQuery的结果,您不需要将条件放在PHP端。