Перейти к контенту

Дневник программиста

  • записей
    60
  • комментариев
    309
  • просмотра
    226 872

Wrapper logic html


Arhar

3 268 просмотров

я сделал этот му**ский скрипт (же)

 

	function parse_logic_html()
{
	$this->ipsclass->skin['_wrapper'] = preg_replace( "#<if=[\"'](.+?)[\"']>(.+?)</if>(?:\s+?)?<else>(.+?)</else>#ise"	 , "\$this->parse_if_else('\\1', '\\2', '\\3')"	, $this->ipsclass->skin['_wrapper'] );
	$this->ipsclass->skin['_wrapper'] = preg_replace( "#<if=[\"'](.+?)[\"']>(.+?)</if>#ise"								, "\$this->parse_if_else('\\1', '\\2')"		 , $this->ipsclass->skin['_wrapper'] );
}

function parse_if_else($if,$true,$false="")
{
	$code = "if(".$if.")".'{$return'." = '{$true}';".'}else{$return'." = '{$false}';".'}';
	eval( $code );
	return $return;
}

5 комментариев


Рекомендуемые комментарии

я пытался

он из евала ретурнить не хочет

хотя хз

но после доработки сделал такой вариант

	function parse_logic_html()
{
	$this->ipsclass->skin['_wrapper'] = preg_replace( "#<ifelse=[\"'](.+?)[\"']>(.+?)<else>(.+?)</if>#ise" , "\$this->parse_if_else('\\1', '\\2', '\\3')" , $this->ipsclass->skin['_wrapper'] );
	$this->ipsclass->skin['_wrapper'] = preg_replace( "#<if=[\"'](.+?)[\"']>(.+?)</if>#ise"				, "\$this->parse_if_else('\\1', '\\2')"		, $this->ipsclass->skin['_wrapper'] );
}

function parse_if_else($if,$true,$false="")
{
	$code = "if(".$if.")".'{$return'." = '{$true}';".'}else{$return'." = '{$false}';".'}';
	eval( $code );
	return stripslashes($return);
}

Ссылка на комментарий
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.