summaryrefslogtreecommitdiff
path: root/app/Http/RequestHandlers/SearchGeneralPage.php
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@webtrees.net>2019-11-16 22:18:42 +0000
committerGreg Roach <fisharebest@webtrees.net>2019-11-16 22:22:13 +0000
commit5525e3bc931797ad35af4574307c13efa0ea19e2 (patch)
tree2a4d0c82893c5b06f06a22cdb38ae865750a99db /app/Http/RequestHandlers/SearchGeneralPage.php
parent4000b59cfd760af391973f731059761b8d3f67b7 (diff)
downloadwebtrees-5525e3bc931797ad35af4574307c13efa0ea19e2.tar.gz
webtrees-5525e3bc931797ad35af4574307c13efa0ea19e2.tar.bz2
webtrees-5525e3bc931797ad35af4574307c13efa0ea19e2.zip
Fix: #2411 - search should treat Han characters as separate words
Diffstat (limited to 'app/Http/RequestHandlers/SearchGeneralPage.php')
-rw-r--r--app/Http/RequestHandlers/SearchGeneralPage.php7
1 files changed, 7 insertions, 0 deletions
diff --git a/app/Http/RequestHandlers/SearchGeneralPage.php b/app/Http/RequestHandlers/SearchGeneralPage.php
index dd11e9bca0..90a9b17295 100644
--- a/app/Http/RequestHandlers/SearchGeneralPage.php
+++ b/app/Http/RequestHandlers/SearchGeneralPage.php
@@ -30,8 +30,12 @@ use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
+use function array_filter;
use function assert;
+use function in_array;
use function preg_match;
+use function preg_replace;
+use function redirect;
use function str_replace;
use function trim;
@@ -194,6 +198,9 @@ class SearchGeneralPage implements RequestHandlerInterface
$query = str_replace($match[0], '', $query);
}
+ // Treat CJK characters as separate words, not as characters.
+ $query = preg_replace('/\p{Han}/u', '$0 ', $query);
+
// Other words get treated separately
while (preg_match('/[\S]+/', $query, $match)) {
$search_terms[] = trim($match[0]);