好吧,我有这些(部分)文章是从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端。