想压缩空格.

WBOY
WBOYoriginal
2016-06-23 14:09:161006parcourir

有以下模板代码,上下两个div的模板,我喜欢上面那个div的写法,因为缩进和对齐都好了,用下面的写法会导致难以阅读维护

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><title>aafdsa</title><style type="text/css">a{margin:0; padding:0}</style></head><body><div id="div1"><?php foreach($ar1 as $bbb): ?>    <a href="http://www.baidu.com?xxx=<?php echo $bbb ;?>"><?php echo $bbb ;?></a><?php endforeach; ?></div><div id="div2"><?php foreach($ar1 as $bbb): ?><a href="http://www.baidu.com?xxx=<?php echo $bbb ;?>"><?php echo $bbb ;?></a><?php endforeach; ?></div></body></html>



视图对象控制的代码是这样的
$ar1 = array(1,2,3,4,5,6,7);  //extract($this->data);ob_start('ob_gzhandler');ob_implicit_flush(0);include 'tpl.php';ob_flush();



然而输出的HTML呈以下效果(以下只贴上BODY部分算了)
<body><div id="div1">    <a href="http://www.baidu.com?xxx=1">1</a>    <a href="http://www.baidu.com?xxx=2">2</a>    <a href="http://www.baidu.com?xxx=3">3</a>    <a href="http://www.baidu.com?xxx=4">4</a>    <a href="http://www.baidu.com?xxx=5">5</a>    <a href="http://www.baidu.com?xxx=6">6</a>    <a href="http://www.baidu.com?xxx=7">7</a></div><div id="div2"><a href="http://www.baidu.com?xxx=1">1</a><a href="http://www.baidu.com?xxx=2">2</a><a href="http://www.baidu.com?xxx=3">3</a><a href="http://www.baidu.com?xxx=4">4</a><a href="http://www.baidu.com?xxx=5">5</a><a href="http://www.baidu.com?xxx=6">6</a><a href="http://www.baidu.com?xxx=7">7</a></div></body>

我企图用排版规范的写法,但又企图输出下面那个div2的a标签不换行的效果,不知道这样可不可以实现.我以为
ob_start('ob_gzhandler');
这个设置可以使得被压缩,但却没有.
我在奇怪thinkphp框架是怎么弄的,我在它那里面是规范排版模板代码的,但它输出的却是压缩的.可能是因为它编译的原因.我没有统计,直接include...
那么请问大家有没有什么办法指导一下?非得编译?


回复讨论(解决方案)

ob_start('compact_format');function compact_format($buffer) {  return preg_replace("/[\r\n]+\s*/", '', $buffer);}echo <<< TXT<div id="div1">    <a href="http://www.baidu.com?xxx=1">1</a>    <a href="http://www.baidu.com?xxx=2">2</a>    <a href="http://www.baidu.com?xxx=3">3</a>    <a href="http://www.baidu.com?xxx=4">4</a>    <a href="http://www.baidu.com?xxx=5">5</a>    <a href="http://www.baidu.com?xxx=6">6</a>    <a href="http://www.baidu.com?xxx=7">7</a></div>TXT;//执行以下,看看效果

ob_start('compact_format');function compact_format($buffer) {  return preg_replace("/[\r\n]+\s*/", '', $buffer);}echo <<< TXT<div id="div1">    <a href="http://www.baidu.com?xxx=1">1</a>    <a href="http://www.baidu.com?xxx=2">2</a>    <a href="http://www.baidu.com?xxx=3">3</a>    <a href="http://www.baidu.com?xxx=4">4</a>    <a href="http://www.baidu.com?xxx=5">5</a>    <a href="http://www.baidu.com?xxx=6">6</a>    <a href="http://www.baidu.com?xxx=7">7</a></div>TXT;//执行以下,看看效果


嗯谢谢,这样是可以.就是要执行一下正则处理了.
我以为利用PHP自带的输出机制可以完成.

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn