php和html之间不需要的空间

时间:2016-07-26 20:50:59

标签: php wordpress ob-start

我有这段代码,问题是每个逗号前都有一个空格。

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

我能做些什么来解决它,但有代码可读吗?我知道我可以把所有东西连在一起,但它会变得难以阅读和保持

3 个答案:

答案 0 :(得分:11)

此:

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

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

反复跳进/退出php模式确实存在零点:

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

只是为了阅读/维护大量丑陋的代码。一旦你进入PHP模式,保持PHP模式,特别是如果你只是跳进/出去:

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

答案 1 :(得分: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;

答案 2 :(得分: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;

?>