diff options
| author | 2022-03-23 11:29:33 +0100 | |
|---|---|---|
| committer | 2022-03-23 11:29:33 +0100 | |
| commit | 92b0ffe05cd426b85fe2575b8d9a1d39b1410b3c (patch) | |
| tree | 888a7606d77a52d2ca06c2bf6e0a7ca38b86b1fa | |
| parent | e8af54a476a7c311827700dd814b81b43b4180f5 (diff) | |
Fix handling of authors with ampersand & (#4287)
Especially needed for HTML+XPath Web scraping as it makes the rest of the pipeline fail to handle special characters.
| -rw-r--r-- | app/Models/Entry.php | 2 | ||||
| -rw-r--r-- | lib/lib_rss.php | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/app/Models/Entry.php b/app/Models/Entry.php index 146acaf35..c3cb337fe 100644 --- a/app/Models/Entry.php +++ b/app/Models/Entry.php @@ -271,7 +271,9 @@ class FreshRSS_Entry extends Minz_Model { $this->hash = ''; if (!is_array($value)) { if (strpos($value, ';') !== false) { + $value = htmlspecialchars_decode($value, ENT_QUOTES); $value = preg_split('/\s*[;]\s*/', $value, -1, PREG_SPLIT_NO_EMPTY); + $value = Minz_Helper::htmlspecialchars_utf8($value); } else { $value = preg_split('/\s*[,]\s*/', $value, -1, PREG_SPLIT_NO_EMPTY); } diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 6929b316c..ba7b5b5d8 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -196,6 +196,7 @@ function timestamptodate ($t, $hour = true) { } /** + * Decode HTML entities but preserve XML entities. * @param string|null $text */ function html_only_entity_decode($text): string { |
