php包含输出两个双引号

时间:2012-07-15 04:43:52

标签: php include

我使用php include来检索我的网站模板及其工作,但它在输出之前显示两个双qoutes。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
require_once 'common.php';
require_once 'load.php';
?>
</body>
</html>

的common.php。 (如果我只包含common.php,那么结果相同,所以我不会在这里粘贴我的load.php)

<?php
if (!defined('ABSPATH'))
    define('ABSPATH', dirname(__FILE__) . '/');

/** Sets up global vars and included files. */
define('INC', 'includes/');
define('FUNCS', 'functions/');
define('CLS', 'classes/');
define('MODS', 'modules/');
#paths

#Initialing
// include require files to set initial
require_once(ABSPATH . 'configs.php');
function openDB() {
    global $dbCon;

    require_once(ABSPATH . CLS . '/class-db.php' );

    if (isset($dbCon))
        return;

    $dbCon = new db(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
}
openDB();
?>

即使common.php为空,仍有引号:/

并输出:

<!DOCTYPE html>
<html>
<head>
<body>
" <!-- this double quote should not be here -->
" <!-- this double quote should not be here -->
<div>hello world!</div>
</body>
</html>

所以每页都有一个空白区域。包含文件发送这样的任何标题?

4 个答案:

答案 0 :(得分:2)

我认为在其中一个包含的文件中<?php标记之前或之后有一些非ascii字符(不一定common.php和load.php也可能是configs.php或class-db.php),这在您的编辑器中是看不见的,但在浏览器中可见。您可以使用HEX编辑器检查文件以检查此文件,或使用“ob_get_clean”来查找这些符号出现的确切位置。

答案 1 :(得分:0)

尤金是对的。我正面临着同样的问题,谷歌搜索时遇到了这个问题但却没有理解。

然后用不同的关键词搜索了一下,比如“php include addition space and line breaks”,找到了另一个帖子,之后我理解了这个帖子的含义。

这也不是一个真正的php问题,它主要发生在我们在不同的编辑器之间复制和粘贴代码时,因为文件类型在utf-8和ansi等之间改变,所以添加了额外的不可见的十六进制数据。

这是使其更正确的网址,在页面末尾找到解决方案 -
php-require-include-adds-line-break-to-html

希望有所帮助。

答案 2 :(得分:0)

在notepad ++中打开“common.php / load.php”并将编码更改为“在没有BOM的情况下以UTF-8编码”

答案 3 :(得分:0)

添加

<div style='clear:both;'></div>

之前

<?php
require_once 'common.php';
require_once 'load.php';
?>
  

它仍将显示但不会对您的布局产生影响

相关问题