想压缩空格.

WBOY
WBOYOriginal
2016-06-23 14:09:161022Durchsuche

有以下模板代码,上下两个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自带的输出机制可以完成.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn