我为我的网站创建了一个模板文件…
<!-- template.php -->
<?php function showheader() { ?>
<head><body>
<!-- some of style files and menus -->
<div class="content">
<?php } ?>
<?php function showfooter() { ?>
</div></body></html>
<?php } ?>
我将此文件用作这样的模板:
<?php include_once("template.php"); showheader(); ?>
content text or photo or ... etc.
<?php showfooter(); ?>
仅此而已…但是,如果我尝试在模板文件上使用连接,那就搞砸了!我使用了一个外部文件,例如:
<?php
//
// include_once connection file
// query strings goes here
//
do {
echo $row_table['id']; //example
} while ($row_table = mysql_fetch_assoc($table));
?>
我将这个文件用作include_once(“ filename.php”);
在模板文件上…这时出现错误…例如此连接变量是什么,此连接字符串是什么…等等。它无法到达连接字符串…
顺便说一句,我使用另一个外部连接,如:
<?php
global $hostname_conn,$database_conn,$username_conn,$password_conn,$conn;
$hostname_conn = "localhost";
$database_conn = "test";
$username_conn = "****";
$password_conn = "****";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query("SET NAMES 'utf8'");
?>
我要哭了!有什么问题…而且您知道使用模板的另一种方法…非常感谢…
PS:我将conn.php上的变量更改为全局变量(并且它没有起作用),并且我更改了include,include_once,require,require_once的位置,其中我包含了文件,但没有给出任何内容。
这会将页面分为两个PHP文件:(1)第一个获取数据,(2)第二个显示数据。
获取数据时,不应打印单个字符。
如果发生某些错误,请显示错误页面。
一旦获得所有数据且没有错误-是时候添加模板了。该模板还具有两个PHP文件:该页面本身的模板和该站点中所有页面共同共享的模板。
通过以这种方式对事物进行排序,您将解决当前和将来的所有模板问题。
典型的脚本可能看起来像
<?
//include our settings, connect to database etc.
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php';
//getting required data
$DATA=dbgetarr("SELECT * FROM links");
$pagetitle = "Links to friend sites";
//etc
//and then call a template:
$tpl = "links.php";
include "template.php";
?>
template.php
您的主要网站模板在哪里,包括通用部分,例如页眉,页脚,菜单等:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<? include $tpl ?>
</div>
</body>
</html>
并且links.php
是实际的页面模板:
<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
<ul>
容易,清洁和可维护。
settings.php包含所有常用设置:
<?php
$hostname_conn,$database_conn,$username_conn,$password_conn,$conn;
$hostname_conn = "localhost";
$database_conn = "test";
$username_conn = "****";
$password_conn = "****";
$conn = mysql_connect($hostname_conn, $username_conn, $password_conn)
or trigger_error(mysql_error(),E_USER_ERROR);
mysql_query("SET NAMES 'utf8'") or trigger_error(mysql_error(),E_USER_ERROR);
$tpl = "default.php";
$pagetitle = "";
function dbgetarr(){
$a = array();
$args = func_get_args();
$query = array_shift($args);
$query = str_replace("%s","'%s'",$query);
foreach ($args as $key => $val) {
$args[$key] = mysql_real_escape_string($val);
}
$query = vsprintf($query, $args);
$res = mysql_query($query);
if (!$res) {
trigger_error("dbget: ".mysql_error()." in ".$query);
} else {
while($row = mysql_fetch_assoc($res)) $a[]=$row;
}
return $a;
}
?>
我试图在OpenSUSE 42.3上安装带有PHP-FPM 7的OCI8,但扩展没有加载。 我安装了oracle-instantclient12。2-basic和oracle-InstantClient 12。2-devel和RPM 在日志中,有下一个错误: 此外,我尝试了不同的解决方案,但没有任何效果: 选项1:我在文件/etc/sysconfic/apache2中添加了以下几行,并重新启动了服
问题内容: 我正在使用html,css,flask和jinja2创建网站。 我有一个在Flask服务器上工作的页面,显示了按钮和标签等,但是我没有加载CSS样式表。 我如何将样式表链接到jinja2模板。我在互联网上四处张望,但找不到答案。 这是css样式表链接;我应该更改此代码还是python代码? 这是我的烧瓶代码: 这是文件的位置: 问题答案: 所有公共文件(未处理的文件,例如模板或py
问题内容: 为什么要在PHP中使用模板系统? 我的问题背后的原因是:PHP本身是功能丰富的模板系统,为什么要安装另一个模板引擎? 到目前为止,我发现的仅有的两个专业人士是: 语法更简洁(有时) 模板引擎通常不足以实现业务逻辑,因此会迫使您分离关注点。使用PHP进行模板化可以吸引您了解模板化原理,并重新开始编写代码。 …与利弊相比,两者都可以忽略不计。 小例子: 的PHP 聪明的 我真的没有任何区别
在模板中使用PHP语法: 该文档正在编写中...
问题内容: 我想将文件上传到给定的文件夹。 错误是: 注意:未定义的变量:第3行的C:\ wamp \ www \ sdg \ import \ ips.php中的HTTP_POST_FILES 问题答案: 以下是一种上传文件的方法,还有许多其他方法。 正如@nordenheim所说,自PHP 4.1.0起已弃用,因此不建议使用。 PHP代码(upload.php) HTML代码启动功能 希望这可
我已经用在我的机器上安装了和。当我在终端中点击时,它返回: PHP7.0。4-7ubuntu2。1(cli)(NTS)版权所有(c)1997-2016 PHP Group Zend Engine v3。0.0,版权所有(c)1998-2016 Zend Technologies与Zend OPcache v7。0.6-dev,版权所有(c)1999-2016,由Zend Technologies出