Always specify UTF-8 targt charset for html_entity_decode(); default is 8-bit ISO-8859-1 which causes things to break when we later pass them through things that expect to work with UTF-8. For instance, running through preg_replace() with the /u option results in NULL, leading to problems with OStatus and SubMirror generating their plaintext versions and doing length-cropping.
This commit is contained in:
parent
91f25ca817
commit
1acc7d66c6
@ -203,7 +203,7 @@ class ActivityObject
|
|||||||
|
|
||||||
$title = ActivityUtils::childHtmlContent($element, self::TITLE);
|
$title = ActivityUtils::childHtmlContent($element, self::TITLE);
|
||||||
|
|
||||||
$this->title = html_entity_decode(strip_tags($title));
|
$this->title = html_entity_decode(strip_tags($title), ENT_QUOTES, 'UTF-8');
|
||||||
|
|
||||||
$this->source = $this->_getSource($element);
|
$this->source = $this->_getSource($element);
|
||||||
|
|
||||||
|
@ -558,7 +558,7 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
// Get (safe!) HTML and text versions of the content
|
// Get (safe!) HTML and text versions of the content
|
||||||
|
|
||||||
$rendered = $this->purify($sourceContent);
|
$rendered = $this->purify($sourceContent);
|
||||||
$content = html_entity_decode(strip_tags($rendered));
|
$content = html_entity_decode(strip_tags($rendered), ENT_QUOTES, 'UTF-8');
|
||||||
|
|
||||||
$shortened = common_shorten_links($content);
|
$shortened = common_shorten_links($content);
|
||||||
|
|
||||||
@ -569,7 +569,7 @@ class Ostatus_profile extends Memcached_DataObject
|
|||||||
|
|
||||||
if (Notice::contentTooLong($shortened)) {
|
if (Notice::contentTooLong($shortened)) {
|
||||||
$attachment = $this->saveHTMLFile($note->title, $rendered);
|
$attachment = $this->saveHTMLFile($note->title, $rendered);
|
||||||
$summary = html_entity_decode(strip_tags($note->summary));
|
$summary = html_entity_decode(strip_tags($note->summary), ENT_QUOTES, 'UTF-8');
|
||||||
if (empty($summary)) {
|
if (empty($summary)) {
|
||||||
$summary = $content;
|
$summary = $content;
|
||||||
}
|
}
|
||||||
|
@ -321,7 +321,7 @@ class TwitterStatusFetcher extends ParallelizingDaemon
|
|||||||
|
|
||||||
$notice->is_local = Notice::GATEWAY;
|
$notice->is_local = Notice::GATEWAY;
|
||||||
|
|
||||||
$notice->content = html_entity_decode($status->text);
|
$notice->content = html_entity_decode($status->text, ENT_QUOTES, 'UTF-8');
|
||||||
$notice->rendered = $this->linkify($status);
|
$notice->rendered = $this->linkify($status);
|
||||||
|
|
||||||
if (Event::handle('StartNoticeSave', array(&$notice))) {
|
if (Event::handle('StartNoticeSave', array(&$notice))) {
|
||||||
|
@ -89,7 +89,7 @@ function importActivityStream($user, $doc)
|
|||||||
|
|
||||||
$html = htmLawed($html, $config);
|
$html = htmLawed($html, $config);
|
||||||
|
|
||||||
$content = html_entity_decode(strip_tags($html));
|
$content = html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8');
|
||||||
|
|
||||||
$notice = Notice::saveNew($user->id,
|
$notice = Notice::saveNew($user->id,
|
||||||
$content,
|
$content,
|
||||||
|
@ -208,7 +208,7 @@ END_HELP;
|
|||||||
$breakout = preg_replace('/<a[^>+]\bhref="(.*)"[^>]*>(.*)<\/a>/',
|
$breakout = preg_replace('/<a[^>+]\bhref="(.*)"[^>]*>(.*)<\/a>/',
|
||||||
'\2 <\1>',
|
'\2 <\1>',
|
||||||
$html);
|
$html);
|
||||||
return html_entity_decode(strip_tags($breakout));
|
return html_entity_decode(strip_tags($breakout), ENT_QUOTES, 'UTF-8');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ function postNote($user, $activity)
|
|||||||
// Get (safe!) HTML and text versions of the content
|
// Get (safe!) HTML and text versions of the content
|
||||||
|
|
||||||
$rendered = purify($sourceContent);
|
$rendered = purify($sourceContent);
|
||||||
$content = html_entity_decode(strip_tags($rendered));
|
$content = html_entity_decode(strip_tags($rendered), ENT_QUOTES, 'UTF-8');
|
||||||
|
|
||||||
$shortened = common_shorten_links($content);
|
$shortened = common_shorten_links($content);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user