php和html之间不需要的空间


Unwanted space between php and 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; ?>

除了让代码可读之外,我还能做些什么来修复它吗?我知道我可以将所有内容连接在一起,但它将变得很难阅读和维护

这:

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

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

重复跳入/跳出php模式完全为零:

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

只会导致读取/维护非常难看的代码。一旦进入PHP模式,请保持PHP模式,特别是如果您只是要跳入/跳出:

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

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;
?>

如果我是,我只会使用一个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;