diff options
author | friendica <info@friendica.com> | 2014-03-30 20:53:59 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-03-30 20:53:59 -0700 |
commit | 653d7df86df781d50e1bc4b3ed61468563629df2 (patch) | |
tree | cb7824f6cb62962f3a9476cb69f6fca9c9a53582 /include/text.php | |
parent | 3791cee52b43ad1ca1ca5290493734b5971c799c (diff) | |
download | volse-hubzilla-653d7df86df781d50e1bc4b3ed61468563629df2.tar.gz volse-hubzilla-653d7df86df781d50e1bc4b3ed61468563629df2.tar.bz2 volse-hubzilla-653d7df86df781d50e1bc4b3ed61468563629df2.zip |
issue #378, failure to correctly link tags where one tag contains a substring of the other (depends on the order they are discovered).
Diffstat (limited to 'include/text.php')
-rwxr-xr-x | include/text.php | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/include/text.php b/include/text.php index e3b1f1c4e..d549f206e 100755 --- a/include/text.php +++ b/include/text.php @@ -619,12 +619,28 @@ function get_tags($s) { } } + // make sure the longer tags are returned first so that if two or more have common substrings + // we'll replace the longest ones first. Otherwise the common substring would be found in + // both strings and the string replacement would link both to the shorter strings and + // fail to link the longer string. RedMatrix github issue #378 + + usort($ret,'tag_sort_length'); - // logger('get_tags: ' . print_r($ret,true)); + + //logger('get_tags: ' . print_r($ret,true)); return $ret; } +function tag_sort_length($a,$b) { + if(mb_strlen($a) == mb_strlen($b)) + return 0; + return((mb_strlen($b) < mb_strlen($a)) ? (-1) : 1); +} + + + + function strip_zids($s) { return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s); |