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('@','&#64;',$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 + -
显示快捷键?