好的,我有从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。
答案 0 :(得分:0)
正如您在上一段中所述,一种解决方案是识别字符串结果中的最后一个空格字符。这可以通过strrpos()
轻松完成。
$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...
}
答案 1 :(得分:0)
使用SUBSTRING()和LOCATE()可以使用纯MySQL轻松完成。使用locate查找空格(具有已定义的偏移量,以便找到第一个,例如25)并使用SUBSTRING中返回的值。
答案 2 :(得分:0)
试试这个兄弟。
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
这给你一个sql Query的结果,你不需要在PHP端放置条件。