aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2022-03-23 11:29:33 +0100
committerGravatar GitHub <noreply@github.com> 2022-03-23 11:29:33 +0100
commit92b0ffe05cd426b85fe2575b8d9a1d39b1410b3c (patch)
tree888a7606d77a52d2ca06c2bf6e0a7ca38b86b1fa
parente8af54a476a7c311827700dd814b81b43b4180f5 (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.php2
-rw-r--r--lib/lib_rss.php1
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 {