如何在两个PHP include语句间添加空白?有无更优方案?
PHP include输出内容缺少空白的优化方案
你遇到的问题是include输出的内容和前后文本直接拼接,导致没有空白间隔,除了用 ,还有以下几种更优的实现方式:
1. 在PHP逻辑中处理空格
方式一:直接在include前后输出空格
在include语句前后用echo输出空格,避免HTML实体的硬编码:
Word - <?php echo ' '; include($_SERVER['DOCUMENT_ROOT'] . '/fake/path.php'); echo ' '; ?> vs <?php echo ' '; include($_SERVER['DOCUMENT_ROOT'] . '/fake/path2.php'); echo ' '; ?>
方式二:捕获include输出并拼接空格
如果需要更灵活的控制,可以用输出缓冲捕获include的内容,再拼接空格后输出:
<?php // 捕获第一个include的内容 ob_start(); include($_SERVER['DOCUMENT_ROOT'] . '/fake/path.php'); $pathContent1 = ob_get_clean(); // 捕获第二个include的内容 ob_start(); include($_SERVER['DOCUMENT_ROOT'] . '/fake/path2.php'); $pathContent2 = ob_get_clean(); ?> Word - <?php echo ' ' . $pathContent1 . ' '; ?> vs <?php echo ' ' . $pathContent2 . ' '; ?>
2. 用CSS控制间距(推荐)
给include的输出包裹一个HTML元素,通过CSS的外边距来控制空白,这种方式更易维护,后续调整间距只需修改CSS:
Word - <span class="include-item"><?php include($_SERVER['DOCUMENT_ROOT'] . '/fake/path.php'); ?></span> vs <span class="include-item"><?php include($_SERVER['DOCUMENT_ROOT'] . '/fake/path2.php'); ?></span>
对应的CSS样式:
.include-item { margin: 0 0.25em; /* 可根据需求调整间距大小 */ }
3. 修改被包含文件的输出
如果被包含的文件由你控制,直接在文件的输出内容前后添加空格,这样主文件无需额外处理:
比如path.php的内容修改为:
<?php echo ' '; ?>pathname<?php echo ' '; ?>
内容的提问来源于stack exchange,提问作者pitzki
相关产品推荐
相关产品推荐

