Home  >  Article  >  php教程  >  PHP常规模板引擎中与CSS/JSON冲突的解决,cssjson

PHP常规模板引擎中与CSS/JSON冲突的解决,cssjson

WBOY
WBOYOriginal
2016-06-13 09:27:101090browse

PHP常规模板引擎中与CSS/JSON冲突的解决,cssjson

主要针对对象:Smarty/Dwoo

参考:http://developer.51cto.com/art/201009/224929.htm

其实以前都不怎么关注模板引擎,觉得没必要使用。但随着年龄的增加,代码洁癖越来越严重,才开始碰到这个问题。

 

Smarty和CSS/JS的语法存在冲突,因为二者都需要使用大括号{}。虽然可以改Smarty的界定符,但你在一个现存系统中,去修改所有相关代码,是不划算的。

 

1. 避免同时出现

通过外部引用的方式避免。问题是避无所避。所以这种情况只适合少量简单的情况。

 

2. 修改Smarty界定符

 

2. 使用Smarty的literal标记将样式表信息包围起来

<span><</span><span>html</span><span>></span> 
<span><</span><span>head</span><span>></span> 
<span><</span><span>title</span><span>></span>{$title}<span></</span><span>title</span><span>></span><span> 
{literal}  
</span><span><</span><span>styletypestyletype</span><span>="text/css"</span><span>></span><span> 
p</span><span>{</span><span>  
margin</span><span>:</span><span>:2px  
</span><span>}</span>  
<span></</span><span>style</span><span>></span><span> 
{/literal}  
</span><span></</span><span>head</span><span>></span> 
<span><</span><span>script </span><span>type</span><span>="text/javascript"</span><span>></span>
      <span>function</span><span> goods_show(id){<br /><br /></span><span><!--</span><span>{literal}</span><span>--><br /><br /></span><span>art.dialog.open(url,{id:</span><span>'</span><span>select</span><span>'</span><span>,title:</span><span>'</span><span>的:</span><span>'</span><span>,width:</span><span>760</span><span>,height:</span><span>380</span><span>,padding: </span><span>'</span><span>10px</span><span>'</span><span>});<br /><br /></span><span><!--</span><span>{</span><span>/</span><span>literal}--></span>
<span>    }
</span><span></</span><span>script</span><span>></span>

 

第三种无疑是绿色环保的,在遇到冲突的地方,加上literal标记包裹。

该方案对Dwoo引擎同样有效。

 

php框架与模板引擎是一会事

关于框架你可以这么理解, 就像一个大楼的地基, 无论大楼怎么盖, 打造地基的方法永远都是类似的.

在我们进行程序开发的过程中, 你会发现每个程序之间都要有很多类似的东西和可以重用的东西, 如果你每个项目过后都把这些类似的东西积累起来, 那么这些代码可以称为库, 当库越来越强大, 甚至连程序结构都可以重用的时候, 你就可以叫他框架了.

国内比较好的框架有thinkPHP, fleaPHP, 国外zendFramework和symfony. 如果楼主想靠php找工作建议学zendFramework, 如果个人开发建议使用symfony.

关于模板引擎, 你可以理解成施工队里刷油漆的, 他们是专业刷油漆的, 盖楼的不用管油漆怎么刷, 刷油漆的也不关注楼是怎么盖的.

其实模板引擎的主要作用还是将逻辑和显示进行分离, 最初可能是为了让程序员和美工更好的进行配合, 既然初学者, 我想你经常会把php代码和html写到一起, 你自己是可以看懂的, 但是美工不一定看得懂, 他们可能只能看懂html和css, 再者说如果美工在混合代码里加了复杂的css或者js你也一样会看不懂, 这样就给程序开发带来了很大的困难. 所以才有了模板引擎, 它将逻辑和显示完全分离, 程序员只需要关注逻辑, 在程序的最后将数据准备好然后传递给模板, 而美工只要修改模板而不需要考虑程序逻辑, 模板技术在团队开发中是经常使用的, 这里推荐你学习smarty.

不知道有没有讲透, 有不懂可以补充.
 

php动态生成html标签与CSS问题

echo '

im create by php '
?>

编译后,HTML结构是什么?CSS是在客户端运行,所以当你发现样式不对的时候,你查看源文件,保存为HTML去检查,看有什么不同,如果你是AJAX做的,源文件没有对应的结构,那就就打开FireBug 复制代码生成HTML 再去检查!

总之,要检查CSS,请不要盯着程序看,放到客户端HTML的环境下去测试吧!
 

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn