我想在网站上实施翻译,并尝试在http://we-love-php.blogspot.com.ar/2012/07/how-to-implement-i18n-without.html找到的方法
当请求的页面是一个完整的页面时,我可以轻松完成,但当请求的页面由许多包含的文件组成时,我不知道该怎么做。
这是我的index.php的样子:
<?php
include 'includes/header.php';
include 'includes/index.php';
include 'includes/footer.php';
?>
我尝试的是将类放在每个模板文件中,如下所示:
<?php
class example{
public function now() {
return <<<FOOBAR
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>MY SITE's TITLE</title>
<meta name="keywords" content="SOME KEYWORDS" />
<meta name="description" content="SOME DESCRIPTION">
<meta name="author" content="MY NAME">
...........
FOOBAR;
}
}
?>
在尝试不止一次创建课程时,这并没有奏效。然后我尝试在标题之上创建类,然后在页脚之后关闭它。它给我一个错误,好像PHP首先尝试打开页脚,然后重新排列包含文件的顺序,所以它首先包含footer.php,最后包含header.php。它不仅是一团糟,而且底部还有一条警告信息:
解析错误:语法错误,意外的文件结束,期待变量
我该如何解决这个问题?我喜欢这种翻译我的网站的方法,但需要它在包含模板的同时工作。有可能吗?
提前致谢!
答案 0 :(得分:0)
包含一个文件字面上告诉编译器抓取一个文件的确切内容,并在运行脚本时将它们复制/粘贴到另一个文件中。这意味着如果你将一个类声明放入多个被包含的文件中,你将最终得到该类的多个声明。
使用include的重点是让你分解你的代码并减少其中的冗余。您不应该在任何时候在多个文件中使用相同的类,函数或代码片段,因为您会遇到一些非常奇怪的行为和冲突。
选择一个文件以将您的类声明放入其中,并确保它不在其他任何文件中。
我希望这有帮助!