functions-formatting.php
来自「在综合英文版XOOPS 2.09, 2.091, 2.092 的基础上正式发布X」· PHP 代码 · 共 561 行 · 第 1/2 页
PHP
561 行
// Add Remaining text $newtext .= $text; // Empty Stack while($x = array_pop($tagstack)) { $newtext = $newtext . '</' . $x . '>'; // Add remaining tags to close } # b2 fix for the bug with HTML comments $newtext = str_replace("< !--","<!--",$newtext); $newtext = str_replace("< !--","< !--",$newtext); return $newtext;}function format_to_edit($content) { global $autobr; $content = stripslashes($content); if ($autobr) { $content = unautobrize($content); } $content = apply_filters('format_to_edit', $content); $content = htmlspecialchars($content); return $content; }function format_to_post($content) { global $post_autobr,$comment_autobr; $content = addslashes($content); if ($post_autobr || $comment_autobr) { $content = autobrize($content); } $content = apply_filters('format_to_post', $content); return $content;}function zeroise($number,$threshold) { // function to add leading zeros when necessary $l=strlen($number); if ($l<$threshold) for ($i=0; $i<($threshold-$l); $i=$i+1) { $number='0'.$number; } return $number;}function backslashit($string) { $string = preg_replace('/([a-z])/i', '\\\\\1', $string); return $string;}function popuplinks($text) { // Comment text in popup windows should be filtered through this. // Right now it's a moderately dumb function, ideally it would detect whether // a target or rel attribute was already there and adjust its actions accordingly. $text = preg_replace('/<a (.+?)>/i', "<a $1 target='_blank' rel='external'>", $text); return $text;}function autobrize($content) { $content = preg_replace("/<br>\n/", "\n", $content); $content = preg_replace("/<br \/>\n/", "\n", $content); $content = preg_replace("/(\015\012)|(\015)|(\012)/", "<br />\n", $content); return $content; }function unautobrize($content) { $content = preg_replace("/<br>\n/", "\n", $content); //for PHP versions before 4.0.5 $content = preg_replace("/<br \/>\n/", "\n", $content); return $content; }function mysql2date($dateformatstring, $mysqlstring, $use_b2configmonthsdays = 1, $charset="") { global $month, $weekday,$s_weekday_length,$s_month_length, $blog_charset; $m = $mysqlstring; if (empty($m)) { return false; } /* if (function_exists('mb_convert_encoding')) { if (!$charset) { if ($blog_charset) { $charset = $blog_charset; } else { $charset = mb_internal_encoding(); } } } */ $i = mktime(substr($m,11,2),substr($m,14,2),substr($m,17,2),substr($m,5,2),substr($m,8,2),substr($m,0,4)); if (!empty($month) && !empty($weekday) && $use_b2configmonthsdays) { $datemonth = $month[date('m', $i)]; $dateweekday = $weekday[date('w', $i)]; $dateformatstring = ' '.$dateformatstring; /* if (function_exists('mb_substr')) { $dateformatstring = preg_replace("/([^\\\])D/", "\\1".backslashit(mb_substr($dateweekday, 0, $s_weekday_length, $charset)), $dateformatstring); } else { $dateformatstring = preg_replace("/([^\\\])D/", "\\1".backslashit(substr($dateweekday, 0, $s_weekday_length)), $dateformatstring); } */ $dateformatstring = preg_replace("/([^\\\])D/", "\\1".backslashit(xoops_substr($dateweekday, 0, $s_weekday_length)), $dateformatstring); $dateformatstring = preg_replace("/([^\\\])F/", "\\1".backslashit($datemonth), $dateformatstring); $dateformatstring = preg_replace("/([^\\\])l/", "\\1".backslashit($dateweekday), $dateformatstring); /* if (function_exists('mb_substr')) { $dateformatstring = preg_replace("/([^\\\])M/", "\\1".backslashit(mb_substr($datemonth, 0, $s_month_length, $charset)), $dateformatstring); } else { $dateformatstring = preg_replace("/([^\\\])M/", "\\1".backslashit(substr($datemonth, 0, $s_month_length)), $dateformatstring); } */ $dateformatstring = preg_replace("/([^\\\])M/", "\\1".backslashit(xoops_substr($datemonth, 0, $s_month_length)), $dateformatstring); //$dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1); $dateformatstring = xoops_substr($dateformatstring, 1, strlen($dateformatstring)-1); } $j = @date($dateformatstring, $i); if (!$j) { // for debug purposes // echo $i." ".$mysqlstring; } return $j;}function current_time($type) { $time_difference = get_settings('time_difference'); switch ($type) { case 'mysql': return date('Y-m-d H:i:s', (time() + ($time_difference * 3600) ) ); break; case 'timestamp': return (time() + ($time_difference * 3600) ); break; }}function addslashes_gpc($gpc) { if (!get_magic_quotes_gpc()) { $gpc = addslashes($gpc); } return $gpc;}function date_i18n($dateformatstring, $unixtimestamp) { global $month, $weekday; $i = $unixtimestamp; if ((!empty($month)) && (!empty($weekday))) { $datemonth = $month[date('m', $i)]; $dateweekday = $weekday[date('w', $i)]; $dateformatstring = ' '.$dateformatstring; $dateformatstring = preg_replace("/([^\\\])D/", "\\1".backslashit(substr($dateweekday, 0, 3)), $dateformatstring); $dateformatstring = preg_replace("/([^\\\])F/", "\\1".backslashit($datemonth), $dateformatstring); $dateformatstring = preg_replace("/([^\\\])l/", "\\1".backslashit($dateweekday), $dateformatstring); $dateformatstring = preg_replace("/([^\\\])M/", "\\1".backslashit(substr($datemonth, 0, 3)), $dateformatstring); $dateformatstring = substr($dateformatstring, 1, strlen($dateformatstring)-1); } $j = @date($dateformatstring, $i); return $j; }function get_weekstartend($mysqlstring, $start_of_week) { $my = substr($mysqlstring,0,4); $mm = substr($mysqlstring,8,2); $md = substr($mysqlstring,5,2); $day = mktime(0,0,0, $md, $mm, $my); $weekday = date('w',$day); $i = 86400; while ($weekday > $start_of_week) { $weekday = date('w',$day); $day = $day - 86400; $i = 0; } $week['start'] = $day + 86400 - $i; $week['end'] = $day + 691199; return $week;}function convert_bbcode($content) { global $wp_bbcode; if (get_settings('use_bbcode')) { $content = preg_replace($wp_bbcode["in"], $wp_bbcode["out"], $content); } $content = convert_bbcode_email($content); return $content;}function convert_bbcode_email($content) { $bbcode_email["in"] = array( '#\[email](.+?)\[/email]#eis', '#\[email=(.+?)](.+?)\[/email]#eis' ); $bbcode_email["out"] = array( "'<a href=\"mailto:'.antispambot('\\1').'\">'.antispambot('\\1').'</a>'", // E-mail "'<a href=\"mailto:'.antispambot('\\1').'\">\\2</a>'" ); $content = preg_replace($bbcode_email["in"], $bbcode_email["out"], $content); return $content;}function convert_gmcode($content) { global $wp_gmcode; if (get_settings('use_gmcode')) { $content = preg_replace($wp_gmcode["in"], $wp_gmcode["out"], $content); } return $content;}function convert_smilies($text) { global $smilies_directory; global $wp_smiliessearch, $wp_smiliesreplace; if (get_settings('use_smilies')) { // HTML loop taken from texturize function, could possible be consolidated $textarr = preg_split("/(<.*>)/U", $text, -1, PREG_SPLIT_DELIM_CAPTURE); // capture the tags as well as in between $stop = count($textarr);// loop stuff $output = ''; for ($i = 0; $i < $stop; $i++) { $content = $textarr[$i]; if ((strlen($content) > 0) && ('<' != $content{0})) { // If it's not a tag $content = str_replace($wp_smiliessearch, $wp_smiliesreplace, $content); } $output .= $content; } } else { // return default text. $output = $text; } return $output;}function antispambot($emailaddy, $mailto=0) { $emailNOSPAMaddy = ''; srand ((float) microtime() * 1000000); for ($i = 0; $i < strlen($emailaddy); $i = $i + 1) { $j = floor(rand(0, 1+$mailto)); if ($j==0) { $emailNOSPAMaddy .= '&#'.ord(substr($emailaddy,$i,1)).';'; } elseif ($j==1) { $emailNOSPAMaddy .= substr($emailaddy,$i,1); } elseif ($j==2) { $emailNOSPAMaddy .= '%'.zeroise(dechex(ord(substr($emailaddy, $i, 1))), 2); } } $emailNOSPAMaddy = str_replace('@','@',$emailNOSPAMaddy); return $emailNOSPAMaddy;}function make_clickable($text) { // original function: phpBB, extended here for AIM & ICQ $ret = " " . $text; $ret = preg_replace("#([\n ])([a-z]+?)://([^, <>{}\n\r]+)#i", "\\1<a href=\"\\2://\\3\" target=\"_blank\">\\2://\\3</a>", $ret); $ret = preg_replace("#([\n ])aim:([^,< \n\r]+)#i", "\\1<a href=\"aim:goim?screenname=\\2\\3&message=Hello\">\\2\\3</a>", $ret); $ret = preg_replace("#([\n ])icq:([^,< \n\r]+)#i", "\\1<a href=\"http://wwp.icq.com/scripts/search.dll?to=\\2\\3\">\\2\\3</a>", $ret); $ret = preg_replace("#([\n ])www\.([a-z0-9\-]+)\.([a-z0-9\-.\~]+)((?:/[^,< \n\r]*)?)#i", "\\1<a href=\"http://www.\\2.\\3\\4\" target=\"_blank\">www.\\2.\\3\\4</a>", $ret); $ret = preg_replace("#([\n ])([a-z0-9\-_.]+?)@([^,< \n\r]+)#i", "\\1<a href=\"mailto:\\2@\\3\">\\2@\\3</a>", $ret); $ret = substr($ret, 1); return $ret;}function is_email($user_email) { $chars = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i"; if(strstr($user_email, '@') && strstr($user_email, '.')) { if (preg_match($chars, $user_email)) { return true; } else { return false; } } else { return false; }}function strip_all_but_one_link($text, $mylink) { $match_link = '#(<a.+?href.+?'.'>)(.+?)(</a>)#'; preg_match_all($match_link, $text, $matches); $count = count($matches[0]); for ($i=0; $i<$count; $i++) { if (!strstr($matches[0][$i], $mylink)) { $text = str_replace($matches[0][$i], $matches[2][$i], $text); } } return $text;}?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?