diff options
author | friendica <info@friendica.com> | 2013-12-25 02:45:22 -0800 |
---|---|---|
committer | friendica <info@friendica.com> | 2013-12-25 02:45:22 -0800 |
commit | 4ec569d6e7ce5f114796d2a9e9f27fc945f0e61c (patch) | |
tree | 1b110c244487d8536a84bb1700e13de7d224e53d /include | |
parent | c1875bcc37ea1e668ccd0821baacd8706142f543 (diff) | |
download | volse-hubzilla-4ec569d6e7ce5f114796d2a9e9f27fc945f0e61c.tar.gz volse-hubzilla-4ec569d6e7ce5f114796d2a9e9f27fc945f0e61c.tar.bz2 volse-hubzilla-4ec569d6e7ce5f114796d2a9e9f27fc945f0e61c.zip |
sslify http links in media elements if you're on an https server
Diffstat (limited to 'include')
-rwxr-xr-x | include/text.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/text.php b/include/text.php index b3154d23e..8b71fbddf 100755 --- a/include/text.php +++ b/include/text.php @@ -781,6 +781,34 @@ function linkify($s) { return($s); } +/** + * @function sslify($s) + * Replace media element using http url with https to a local redirector if using https locally + * @param string $s + * + * Looks for HTML tags containing src elements that are http when we're viewing an https page + * Typically this throws an insecure content violation in the browser. So we redirect them + * to a local redirector which uses https and which redirects to the selected content + * + * @returns string + */ + + +function sslify($s) { + if(strpos(z_root(),'https:') === false) + return $s; + $matches = null; + $cnt = preg_match_all("/\<(.*?)src=\"(http\:.*?)\"(.*?)\>/",$s,$matches,PREG_SET_ORDER); + if($cnt) { + foreach($matches as $match) { + $s = str_replace($match[2],z_root() . '/sslify?f=&url=' . urlencode($match[2]),$s); + } + } + return $s; +} + + + function get_poke_verbs() { // index is present tense verb @@ -1166,6 +1194,10 @@ function prepare_body(&$item,$attach = false) { if(local_user() == $item['uid']) $s .= format_filer($item); + + $s = sslify($s); + + // Look for spoiler $spoilersearch = '<blockquote class="spoiler">'; |