在使用Layout布局时,TP只提供了替换单一占位__CONTENT__布局。如果想要临时加点内容到特殊位置,那就得另外定义一个布局文件。本人在原基础上增加了占位符解析。可以方便在想要的位置插入代码
在使用Layout布局时,TP只提供了替换单一占位__CONTENT__布局。如果想要临时加点内容到特殊位置,那就得另外定义一个布局文件。本人在原基础上增加了占位符解析。可以方便在想要的位置插入代码。TP原布局方式仍然可用。具体代码如下//修改替换ThinkPHP/Library/Think/Template模版类中的parseLayout布局解析方法<br>
//使用正则匹配placeholder区域,并替换placeholder特性name所指定的在布局中的占位<br>
//占位格式:{__占位名__}<br>
protected function parseLayout($content) {<br>
// 读取模板中的布局标签<br>
$find = preg_match('/'.$this->config['taglib_begin'].'layout\s(.+?)\s*?\/'.$this->config['taglib_end'].'/is',$content,$matches);<br>
if($find) {<br>
//替换Layout标签<br>
$content = str_replace($matches[0],'',$content);<br>
//解析Layout标签<br>
$array = $this->parseXmlAttrs($matches[1]);<br>
if(!C('LAYOUT_ON') || C('LAYOUT_NAME') !=$array['name'] ) {<br>
// 读取布局模板<br>
$layoutFile = THEME_PATH.$array['name'].$this->config['template_suffix'];<br>
$pattern='/'.$this->config['taglib_begin'].'placeholder\s([^'.$this->config['taglib_end'].']*?)'.$this->config['taglib_end'].'\s(.+?)\s*?'.$this->config['taglib_begin'].'\/placeholder'.$this->config['taglib_end'].'/is';<br>
$result= preg_match_all($pattern,$content,$matches);<br>
if($result){<br>
$layout=file_get_contents($layoutFile);<br>
foreach($matches[0] as $index=>$placeholder){<br>
$array=$this->parseXmlAttrs($matches[1][$index]);<br>
$replace='{__'.$array["name"]."__}";<br>
$layout = str_replace($replace,$matches[2][$index],$layout);<br>
}<br>
$content=$layout;<br>
}else{<br>
$replace = isset($array['replace'])?$array['replace']:$this->config['layout_item'];<br>
// 替换布局的主体内容<br>
$content = str_replace($replace,$content,file_get_contents($layoutFile));<br>
}<br>
//替换掉模版中空的占位<br>
$content=preg_replace('/{__\w+?__}/','',$content);<br>
}<br>
}else{<br>
$content = str_replace('{__NOLAYOUT__}','',$content);<br>
}<br>
<br>
return $content;<br>
}
使用实例:
布局文件:<br>
{__HEADER__}<br>
{__CONTENT__}<br>
{__FOOTER__}<br>
应用:<layout></layout><br>
<placeholder></placeholder><br>
<placeholder></placeholder><br>
<placeholder></placeholder>
这样,就可以在你的布局文件中定义任意的占位符,方便你在想要的位置插入代码
AD:真正免费,域名+虚机+企业邮箱=0元

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기
