diff --git a/components/motd.php b/components/motd.php
index bd3f822f43535adea4e293dd808df5da025f6a04..2c3eb66755f63d5624f4c710da226dfe304c5a05 100644
--- a/components/motd.php
+++ b/components/motd.php
@@ -3,16 +3,21 @@ $motd_file = "/etc/motd";
function decode_entities($text, $quote_style = ENT_COMPAT)
{
- if (function_exists('html_entity_decode')) {
- $text = html_entity_decode($text, $quote_style, 'ISO-8859-1'); // NOTE: UTF-8 does not work!
- } else {
- $trans_tbl = get_html_translation_table(HTML_ENTITIES, $quote_style);
- $trans_tbl = array_flip($trans_tbl);
- $text = strtr($text, $trans_tbl);
- }
- $text = preg_replace('~&ndash\;~i', '-', $text);
- $text = preg_replace('~([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $text);
- $text = preg_replace('~([0-9]+);~e', 'chr("\\1")', $text);
+ $text = html_entity_decode($text, $quote_style, 'ISO-8859-1'); // NOTE: UTF-8 does not work!
+ $text = preg_replace_callback('~([0-9a-f]+);~i',
+ function ($matches) {
+ foreach ($matches as $match) {
+ return chr(hexdec($match));
+ }
+ },
+ $text);
+ $text = preg_replace_callback('~([0-9]+);~',
+ function ($matches) {
+ foreach ($matches as $match) {
+ return chr($match);
+ }
+ },
+ $text);
return $text;
}
@@ -52,7 +57,12 @@ for ($i = count($news) - 1; $i > -1; $i--) {
$body = str_replace("…", "...", $body);
$body = str_replace("'", "'", $body);
// remove hyperlinks, collect to display later
- $body = preg_replace(":(.*?):e", "'\\2['.linkcounter('\\1').']'", $body);
+ $body = preg_replace_callback(":(.*?):",
+ function ($matches) {
+ $i = linkcounter($matches[1]);
+ return $matches[0]."[".$i."]";
+ },
+ $body);
$body = strip_tags($body);
$body = decode_entities($body);
$body = wordwrap($body, 75, "\n ", 1);
@@ -76,9 +86,11 @@ for ($i = count($news) - 1; $i > -1; $i--) {
}
$motd .= "---------------------------- [ http://sucs.org/ ] -----------------------------\n";
+//print($motd);
+
//if (time()-filemtime($motd_file) < 86000 && $poemmode == 1) { //86000 to allow a little slack depending on when cron runs
// print "MOTD too recent to replace with a poem!\n";
//} else {
file_put_contents($motd_file, $motd);
//}
-?>
+?>
\ No newline at end of file