re-arrange a few functions
This commit is contained in:
		| @@ -9,6 +9,66 @@ require_once('include/event.php'); | |||||||
| require_once('include/zot.php'); | require_once('include/zot.php'); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | function get_bb_tag_pos($s, $name, $occurance = 1) { | ||||||
|  |  | ||||||
|  | 	if($occurance < 1) | ||||||
|  | 		$occurance = 1; | ||||||
|  |  | ||||||
|  | 	$start_open = -1; | ||||||
|  | 	for($i = 1; $i <= $occurance; $i++) { | ||||||
|  | 		if( $start_open !== false) | ||||||
|  | 			$start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	if( $start_open === false) | ||||||
|  | 		return false; | ||||||
|  |  | ||||||
|  | 	$start_equal = strpos($s, '=', $start_open); | ||||||
|  | 	$start_close = strpos($s, ']', $start_open); | ||||||
|  |  | ||||||
|  | 	if( $start_close === false) | ||||||
|  | 		return false; | ||||||
|  |  | ||||||
|  | 	$start_close++; | ||||||
|  |  | ||||||
|  | 	$end_open = strpos($s, '[/' . $name . ']', $start_close); | ||||||
|  |  | ||||||
|  | 	if( $end_open === false) | ||||||
|  | 		return false; | ||||||
|  |  | ||||||
|  | 	$res = array( 'start' => array('open' => $start_open, 'close' => $start_close), | ||||||
|  | 	              'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) ); | ||||||
|  | 	if( $start_equal !== false) | ||||||
|  | 		$res['start']['equal'] = $start_equal + 1; | ||||||
|  |  | ||||||
|  | 	return $res; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function bb_tag_preg_replace($pattern, $replace, $name, $s) { | ||||||
|  |  | ||||||
|  | 	$string = $s; | ||||||
|  |  | ||||||
|  | 	$occurance = 1; | ||||||
|  | 	$pos = get_bb_tag_pos($string, $name, $occurance); | ||||||
|  | 	while($pos !== false && $occurance < 1000) { | ||||||
|  |  | ||||||
|  | 		$start = substr($string, 0, $pos['start']['open']); | ||||||
|  | 		$subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']); | ||||||
|  | 		$end = substr($string, $pos['end']['close']); | ||||||
|  | 		if($end === false) | ||||||
|  | 			$end = ''; | ||||||
|  |  | ||||||
|  | 		$subject = preg_replace($pattern, $replace, $subject); | ||||||
|  | 		$string = $start . $subject . $end; | ||||||
|  |  | ||||||
|  | 		$occurance++; | ||||||
|  | 		$pos = get_bb_tag_pos($string, $name, $occurance); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return $string; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| function tryoembed($match) { | function tryoembed($match) { | ||||||
| 	$url = ((count($match) == 2) ? $match[1] : $match[2]); | 	$url = ((count($match) == 2) ? $match[1] : $match[2]); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -13,73 +13,6 @@ require_once("include/html2bbcode.php"); | |||||||
| require_once("include/bbcode.php"); | require_once("include/bbcode.php"); | ||||||
|  |  | ||||||
|  |  | ||||||
| function get_bb_tag_pos($s, $name, $occurance = 1) { |  | ||||||
|  |  | ||||||
| 	if($occurance < 1) |  | ||||||
| 		$occurance = 1; |  | ||||||
|  |  | ||||||
| 	$start_open = -1; |  | ||||||
| 	for($i = 1; $i <= $occurance; $i++) { |  | ||||||
| 		if( $start_open !== false) |  | ||||||
| 			$start_open = strpos($s, '[' . $name, $start_open + 1); // allow [name= type tags |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	if( $start_open === false) |  | ||||||
| 		return false; |  | ||||||
|  |  | ||||||
| 	$start_equal = strpos($s, '=', $start_open); |  | ||||||
| 	$start_close = strpos($s, ']', $start_open); |  | ||||||
|  |  | ||||||
| 	if( $start_close === false) |  | ||||||
| 		return false; |  | ||||||
|  |  | ||||||
| 	$start_close++; |  | ||||||
|  |  | ||||||
| 	$end_open = strpos($s, '[/' . $name . ']', $start_close); |  | ||||||
|  |  | ||||||
| 	if( $end_open === false) |  | ||||||
| 		return false; |  | ||||||
|  |  | ||||||
| 	$res = array( 'start' => array('open' => $start_open, 'close' => $start_close), |  | ||||||
| 	              'end' => array('open' => $end_open, 'close' => $end_open + strlen('[/' . $name . ']')) ); |  | ||||||
| 	if( $start_equal !== false) |  | ||||||
| 		$res['start']['equal'] = $start_equal + 1; |  | ||||||
|  |  | ||||||
| 	return $res; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function bb_tag_preg_replace($pattern, $replace, $name, $s) { |  | ||||||
|  |  | ||||||
| 	$string = $s; |  | ||||||
|  |  | ||||||
| 	$occurance = 1; |  | ||||||
| 	$pos = get_bb_tag_pos($string, $name, $occurance); |  | ||||||
| 	while($pos !== false && $occurance < 1000) { |  | ||||||
|  |  | ||||||
| 		$start = substr($string, 0, $pos['start']['open']); |  | ||||||
| 		$subject = substr($string, $pos['start']['open'], $pos['end']['close'] - $pos['start']['open']); |  | ||||||
| 		$end = substr($string, $pos['end']['close']); |  | ||||||
| 		if($end === false) |  | ||||||
| 			$end = ''; |  | ||||||
|  |  | ||||||
| 		$subject = preg_replace($pattern, $replace, $subject); |  | ||||||
| 		$string = $start . $subject . $end; |  | ||||||
|  |  | ||||||
| 		$occurance++; |  | ||||||
| 		$pos = get_bb_tag_pos($string, $name, $occurance); |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return $string; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function share_shield($m) { |  | ||||||
| 	return str_replace($m[1],'!=+=+=!' . base64url_encode($m[1]) . '=+!=+!=',$m[0]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| function share_unshield($m) { |  | ||||||
| 	$x = str_replace(array('!=+=+=!','=+!=+!='),array('',''),$m[1]); |  | ||||||
| 	return str_replace($m[1], base64url_decode($x), $m[0]); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * @brief |  * @brief | ||||||
|   | |||||||
| @@ -3082,6 +3082,14 @@ function create_table_from_array($table, $arr) { | |||||||
| 	return $r; | 	return $r; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | function share_shield($m) { | ||||||
|  | 	return str_replace($m[1],'!=+=+=!' . base64url_encode($m[1]) . '=+!=+!=',$m[0]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | function share_unshield($m) { | ||||||
|  | 	$x = str_replace(array('!=+=+=!','=+!=+!='),array('',''),$m[1]); | ||||||
|  | 	return str_replace($m[1], base64url_decode($x), $m[0]); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| function cleanup_bbcode($body) { | function cleanup_bbcode($body) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user