diff options
author | friendica <info@friendica.com> | 2011-11-27 04:09:14 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2011-11-27 04:09:14 -0800 |
commit | cf7568efd72e93f1807c8560b78cae2580667413 (patch) | |
tree | 6b8af40094a08cfcd0b598afe1328f148d8c20de | |
parent | 0f4a42f550b5bc863cec7c7a3fca26a028599dcc (diff) | |
download | volse-hubzilla-cf7568efd72e93f1807c8560b78cae2580667413.tar.gz volse-hubzilla-cf7568efd72e93f1807c8560b78cae2580667413.tar.bz2 volse-hubzilla-cf7568efd72e93f1807c8560b78cae2580667413.zip |
extract private images before bbcode translation since preg has issues with large data sizes.
-rw-r--r-- | boot.php | 2 | ||||
-rw-r--r-- | include/bbcode.php | 22 | ||||
-rw-r--r-- | include/diaspora.php | 1 |
3 files changed, 23 insertions, 2 deletions
@@ -9,7 +9,7 @@ require_once('include/nav.php'); require_once('include/cache.php'); define ( 'FRIENDICA_PLATFORM', 'Friendica'); -define ( 'FRIENDICA_VERSION', '2.3.1176' ); +define ( 'FRIENDICA_VERSION', '2.3.1177' ); define ( 'DFRN_PROTOCOL_VERSION', '2.22' ); define ( 'DB_UPDATE_VERSION', 1105 ); diff --git a/include/bbcode.php b/include/bbcode.php index 06a610173..71745de58 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -30,6 +30,24 @@ function tryoembed($match){ function bbcode($Text,$preserve_nl = false) { + + // extract a single private image which uses data url's since preg has issues with + // large data sizes. Put it back in after we've done all the regex matching. + + $saved_image = ''; + $img_start = strpos($Text,'[img]data:'); + if($img_start !== false) { + $start_fragment = substr($Text,0,$img_start); + $img_start += strlen('[img]'); + $saved_image = substr($Text,$img_start); + $img_end = strpos($saved_image,'[/img]'); + $saved_image = substr($saved_image,0,$img_end); + logger('saved_image: ' . $saved_image); + $img_end += strlen('[/img]'); + $Text = $start_fragment . '[$#saved_image#$]' . substr($Text,strlen($start_fragment) + strlen('[img]') + $img_end); + + } + // If we find any event code, turn it into an event. // After we're finished processing the bbcode we'll // replace all of the event code with a reformatted version. @@ -206,7 +224,9 @@ function bbcode($Text,$preserve_nl = false) { // fix any escaped ampersands that may have been converted into links $Text = preg_replace("/\<(.*?)(src|href)=(.*?)\&\;(.*?)\>/ism",'<$1$2=$3&$4>',$Text); - + if(strlen($saved_image)) + $Text = str_replace('[$#saved_image#$]','<img src="' . $saved_image .'" alt="' . t('Image/photo') . '" />',$Text); + call_hooks('bbcode',$Text); return $Text; diff --git a/include/diaspora.php b/include/diaspora.php index 36457655e..0ffb22b95 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -1303,6 +1303,7 @@ function diaspora_retraction($importer,$xml) { return; if($type === 'Person') { + require_once('include/Contact.php'); contact_remove($contact['id']); } elseif($type === 'Post') { |