mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-31 22:10:45 +02:00
Merge pull request #2195 from Elsensee/ticket/10423
[ticket/10423] Remove * from search or highlight string * Elsensee/ticket/10423: [ticket/10423] Replace foreach with function in viewtopic.php [ticket/10423] Remove unnecessary include in test [ticket/10423] Match multiple wildcards [ticket/10423] Move code into a function and add tests for it [ticket/10423] Remove * from search or highlight string
This commit is contained in:
@@ -21,6 +21,7 @@ if (!defined('IN_PHPBB'))
|
||||
* make_jumpbox()
|
||||
* bump_topic_allowed()
|
||||
* get_context()
|
||||
* phpbb_clean_search_string()
|
||||
* decode_message()
|
||||
* strip_bbcode()
|
||||
* generate_text_for_display()
|
||||
@@ -360,6 +361,23 @@ function get_context($text, $words, $length = 400)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans a search string by removing single wildcards from it and replacing multiple spaces with a single one.
|
||||
*
|
||||
* @param string $search_string The full search string which should be cleaned.
|
||||
*
|
||||
* @return string The cleaned search string without any wildcards and multiple spaces.
|
||||
*/
|
||||
function phpbb_clean_search_string($search_string)
|
||||
{
|
||||
// This regular expressions matches every single wildcard.
|
||||
// That means one after a whitespace or the beginning of the string or one before a whitespace or the end of the string.
|
||||
$search_string = preg_replace('#(?<=^|\s)\*+(?=\s|$)#', '', $search_string);
|
||||
$search_string = trim($search_string);
|
||||
$search_string = preg_replace(array('#\s+#u', '#\*+#u'), array(' ', '*'), $search_string);
|
||||
return $search_string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decode text whereby text is coming from the db and expected to be pre-parsed content
|
||||
* We are placing this outside of the message parser because we are often in need of it...
|
||||
|
Reference in New Issue
Block a user