我有一点奇怪的行为。
当我插入一个函数时,我的div有空格。例如:
如果我把这个
include ('header.php');
$view->header_login();
setlanguage(); // <--------this is my language function
我得到像
这样的空间如果我删除该功能
include ('header.php');
$view->header_login();
//setlanguage();
我得到了这个
这是我的功能
function setlanguage(){
if(!isset($_SESSION['selectlang'])){$_SESSION['selectlang'] = 'English' ;}
if(!isset($_GET['lang'])){$_GET['lang'] = 'english' ;}
switch ($_GET['lang']){
case "english" :
$_SESSION['selectlang'] = 'English';
include("lang/english.php");
break;
case "swedish" :
$_SESSION['selectlang'] = 'Swedish';
include("lang/swedish.php");
break;
case "russian":
$_SESSION['selectlang'] = 'Russian';
include("lang/russian.php");
break;
default :
include("lang/english.php");
}
}
编辑:
english.php
<?php
define("NEW_GOOD_NAME_CONSTANT", "I have a value");
define("Free_website", "talking website");
define("Home", "Home");
?>
答案 0 :(得分:3)
同样的事发生在我身上。
我发现在使用Notepad ++时它与编码方法有关。 UTF-8 without BOM
似乎有效。
但是,我找到了一个解决方法,因为我更喜欢UTF-8
,它应该可以工作:
<span style="display: none"><?php include ('header.php'); ?></span><?php
$view->header_login();
setlanguage();
答案 1 :(得分:3)
在english.php
中,在结束?>
?>
^^^^^^^^^^
您不需要关闭?>
,所以只需删除它,整个文件就会如下所示:
<?php
define("NEW_GOOD_NAME_CONSTANT", "I have a value");
define("Free_website", "talking website");
define("Home", "Home");
您的文件中也可能有UTF-8 BOM(字节顺序标记),您可以在UNIX / Linux机器上使用以下命令检查:
$ head -c3 sleep | hexdump -C
00000000 ef bb bf |...|
如果您的输出类似于此(0xef 0xbb 0xbf),则表示存在BOM。 BOM由PHP解释为空白 在Windows上,您需要使用HEX编辑器进行检查。
删除这取决于你的编辑器,你应该找到一个设置&#34;保存BOM&#34;,或者那种效果,并禁用它。 This page还列出了一些删除BOM的方法。