支持@switch
修复不能输出html内容
注意:不支持自定义标签边间符
本代码fork terranc/think-blade(具体可查看github)
详细说明查看github https://github.com/zishang520/think-blade
附上部分转换正则
\{:(\w+\((['"])((?:(?!\2).)*?)\2\))\s*\}
{{ $1 }}
\{:(\w+\(.*?\))\s*\}
{{ $1 }}
\{foreach.*?name=(['"])(:(?:(?!\1).)*?)\1.*?item=(['"])((?:(?!\1).)*?)\1\s*\}
@foreach\(\$$2 as \$$4\)
\{foreach.*?name=(['"])((?:(?!\1).)*?)\1.*?item=(['"])((?:(?!\1).)*?)\1\s*\}
@foreach\(\$$2 as \$$4\)
\{/foreach\}
@endforeach
\{if.*?condition=(['"])((?:(?!\1).)*?)\1\s*\}
@if\($2\)
\{else\s+\/\}
@else
\{\/if\}
@endif
\{\s*(\$\w+)\s*\}
\{\{ $1 \}\}
\{\s*(\$\w+)(\.(\w+))\s*\}
\{\{ $1['$3'] \}\}
(\$\w+)\.(\w+)
$1\['$2'\]
\{\s*(\$\w+\->\w+(\(.*?\))?)\s*\}
\{\{ $1 \}\}
\{php\}\s*echo\s*(.*?);\{\/php\}
\{\{ $1 \}\}
\{(\$.*?)\|default=(['"])((?:(?!\2).)*?)\2\}
\{\{ isset\($1\)\?$1\:'$3' \}\}
(?<=\})\s*\{block.*?name=(['"])((?:(?!\1).)*?)\1\s*\}
\n@section\('$2'\)
\s*\{block.*?name=(['"])((?:(?!\1).)*?)\1\s*\}
@section\('$2'\)
\{\/block\}
@endsection 最佳答案