2016-07-26 114 views
3

我有这段代码,问题是在每个逗号前都有一个空的空格。php和html之间不需要的空间

Name Lastname , (1990.) , Title ... 

应该

Name Lastname, (1990.), Title ... 

我必须使用echo这种格式的数据。

ob_start(); 

... 

<?php // DATE ?> 
<?php if(!empty($ref['godina_izdanja'])) : 
echo ', (<span class="date">' . $ref['godina_izdanja'] . '</span>.)'; 
endif; ?> 

<?php // TITLE?> 
<?php if(!empty($ref['title'])) : 
echo ', <em><span class="title">' . $ref['title'] . '</span></em>'; 
endif; ?> 

有什么我可以做的,以解决它,但有代码可读?我知道我可以Concat的一切融合在一起,但它会变得难以阅读和十个分量

+1

它可以是??<?php // TITLE?标签。 –

回答

11

此:

endif; ?> 
          <----right here 
<?php // TITLE?> 

在PHP脚本,ANYTHING这不是内<?php ... ?>标签被视为输出。你有一个空行,所以你输出一个空行,它将被浏览器渲染为一个空格。

有中/反复跳了PHP模式正是零点:

<?php echo 'hi'; ?> 
<?php echo 'mom'; ?> 

只是使为大规模丑陋的代码读取/维持。一旦你在PHP模式的时候,留在PHP模式,特别是如果你只是要跳/出:

<?php 
echo 'hi'; 
echo 'mom'; 
?> 
0

如果我是你,我只用一个PHP块

<?php 

// DATE 
if(!empty($ref['godina_izdanja'])) : 
    echo ', (<span class="date">' . $ref['godina_izdanja'] . '</span>.)'; 
endif; 

// TITLE 
if(!empty($ref['title'])) : 
    echo ', <em><span class="title">' . $ref['title'] . '</span></em>'; 
endif; 
0

越少的Php标签,混乱越少。如果您确实需要在两者之间使用html,请尽量避免在进出php标签时使用空格。

<?php 
ob_start(); 

... 

// DATE 
if(!empty($ref['godina_izdanja'])) : 
echo ', (<span class="date">' . $ref['godina_izdanja'] . '</span>.)'; 
endif; 

// TITLE 
if(!empty($ref['title'])) : 
echo ', <em><span class="title">' . $ref['title'] . '</span></em>'; 
endif; 

?>