Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP包括麻烦_Php_Include - Fatal编程技术网

PHP包括麻烦

PHP包括麻烦,php,include,Php,Include,我一直在尝试有包括作为我的网站的一部分约2周了。通过多个问题和长期的研究,我发现php是最好的方法。我开始尝试用html注释的方式在服务器端包含,然后我去了php,研究了包含工作所需的所有不同扩展,等等。我已经为mac下载了MAMP,因为我知道它可以与includes一起工作。我一次又一次地尝试使用php编写类似的代码,但无论出于何种原因,它都无法工作。无论是youtube上的Newboston还是php的手册,我都没有成功 最后,我遇到了。 我将他们的代码保存到一个文件夹中,并在MAMP上运行

我一直在尝试有包括作为我的网站的一部分约2周了。通过多个问题和长期的研究,我发现php是最好的方法。我开始尝试用html注释的方式在服务器端包含,然后我去了php,研究了包含工作所需的所有不同扩展,等等。我已经为mac下载了MAMP,因为我知道它可以与includes一起工作。我一次又一次地尝试使用php编写类似的代码,但无论出于何种原因,它都无法工作。无论是youtube上的Newboston还是php的手册,我都没有成功

最后,我遇到了。 我将他们的代码保存到一个文件夹中,并在MAMP上运行,它神奇地工作了。我想如果我把这个应用到我的网站上,它会起作用的。同样,没有成功。所以我请求你的帮助

代码:

页脚:(Footer.php)


Header:(Header.php)


导航栏:(navbar.php)


我网站的一个页面:(aboutUs.php)


水球,最好的运动
(我还不允许发布直接图片)


这次在../includes/header.php的版本中,我的页面显示了一些希望。唯一的问题是,include没有访问css和图像文件,结果是这样的:抱歉,无法发布两张图片,但新页面没有css影响,看起来像纯文本。

PHP include语句与通过它访问的文件相关

例如:

如果您使用index.php访问该站点,则需要

include(“includes/footer.php”)

如果你是直接访问网页,例如:那么包括需要

include(“../includes/footer.php”)


使用
。/
路径前缀相当于说在目录结构中向上一级。

当使用相对文件路径执行
包含时,PHP首先使用当前目录查找文件,然后在包含路径中查找它(包含路径可通过
phpinfo()
找到)

在您的例子中,您的
footer.php
navbar.php
header.php
都位于includes目录中,但您的
aboutUs.php
位于
htmlfiles
目录中

要修复它,可以执行以下操作:

aboutUs.php

<?php echo'<div class ="footer">
<p>Contact Us! <br> @allwaterpolo</p>
<a href="#"><img src ="img/Facebook_Png_01.png" class="facebook" id="FaceBook Link" /> </a>
<a href="#"><img src ="img/Uiconstock-Socialmedia-Instagram.ico" class="instagram" id="Instagram Link" /> </a>
 <a href="#"><img src ="img/Twitter_Logo_Hd_Png_03.png" class="twitter" id="Twitter Link" /> </a>
<a href="#"><img src ="img/Youtube_icon.png" class="youtube" id="YouTube Link" /> </a>
<div class="aboutus">
<a href ="htmlfiles/aboutUs.php">About <br>Us</a>
</div>
<div class= copyright>
Copyright &copy; 2016<script>new Date().getFullYear()>2016&&document.write("-"+new Date().getFullYear());</script>, <br> All Water Polo. All rights reserved
</div>
</div> ';?>
<?php echo'<div class ="header">
<h1>The Best Sport</h1>
<h1 class="sitetitle">AllWaterPolo</h1>
<img src ="img/51wmckj8p1l__sx300__1.png" class="wpball" alt="Water Polo Ball" />
<h2 class="homeScreenLink"> <a href ="index.html">Water Polo!</a></h2> </div>';?>
<?php echo'<div class="navBar">
    <ul>
    <li><a href ="htmlfiles/history.php">History
    </a></li>
    <li><a href ="htmlfiles/started.php"> Get Started</a></li>
    <li><a href ="htmlfiles/positions.php">Positions</a></li>
    <li><a href ="htmlfiles/rules.php">Rules</a></li>
    <li><a href ="htmlfiles/nationalleague.php">National League</a></li>
    <li> <a href ="htmlfiles/extras.php">Extras</a>
        <ul>
            <li><a href="#">Videos</a> </li>
            <li><a href="#">Plays</a> </li>
            <li><a href="#">TBA</a> </li>
        </ul>
    </li>
    </ul>
</div>';?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="styles.css" type="text/css" />
<script type="text/javascript" src="main.js"></script>
<title> Water Polo, The Best Sport</title>
<link rel="icon" type="image/png" href="img/favicon.ico" />
</head>
<body>
<div class="wrapper">
<?php
include 'header.php' ;
?>
<?php
include 'navbar.php' ;
?>
<div class= "content">
</div>
<?php
include 'footer.php' ;
?>
</div>
</body>
</html>
include dirname(__DIR__) . '/includes/header.php';
体验对话:我们通常不做
include'../includes/header.php'
,因为这是邪恶的。虽然乍一看很好,但如果在另一个目录中有另一个文件,请尝试包含
aboutUs.php
,相对路径将发生变化,并且再次找不到头文件。执行
dirname(\uuuu DIR\uuuu)
是为了确保“我希望PHP相对于当前文件的目录搜索此文件,而不是搜索其他文件”



该语句非常强大,因为它也可以用于其他奇特的东西,例如,包括来自另一个php文件的数组(用于配置),甚至包括来自URL的内容。请仔细阅读:)

如果您使用的是MAMP,那么我相信您会将网站文件放入名为
www
的文件夹中,对吗?假设这是正确的。您有一个用于此网站的文件夹,名为
waterpolo site
,因此您应该能够通过将此文件夹键入以下内容来显示该网站:

Safari的地址栏应显示:
http://waterpolo-site/index.html
。如果这不正确,请纠正我

(1) 通常,我们的网站结构如下:

example.com
    - css
        styles.css
        bootstrap.min.css
    - js
        index.js
        jquery.min.js
        bootstrap.min.js
    - img
        logo.jpg
        pic1.jpg
        pic2.jpg
        another_pic.jpg
    - inc
        connect.inc.php
        head.inc.php
        header.inc.php
        footer.inc.php
        nav.inc.php
    index.php
    about.php
    history.php
    positions.php
如果您按照上述方式构建网站文件夹结构,那么所有文件路径都是直接的:
包括“folder/file.ext”

我的足球网站
(3) 请注意,PHP代码仅用于执行PHP功能—调用函数、数据库查找、会话启动等。一旦关闭PHP标记
?>
,HTML就会像输出
.HTML
文件一样输出

(4) 以
.php
结尾的文件与以
.html
结尾的文件之间的主要区别在于,php文件还可以处理php命令。两者可以完全相同地处理HTML。确实不需要使用文件扩展名
.html


(5) 注意
favicon上的小技巧。如果您更新了一个文件(css、js等),并且希望访问者使用新文件,而不是使用存储在浏览器缓存中的以前获取的版本,那么您可以添加一个
?xxx=yyy
伪获取参数和presto!他们将从您的服务器下载更新版本。不过,下次他们访问时,可能会使用缓存中的版本,除非您再次更改GET参数。

什么是rrot目录?可能需要包含它。@sbswim您能在
htdocs
目录中显示您的目录结构吗?它可能会给我们一个关于发生了什么的线索。刚刚添加了它。谢谢@Lionelchan你到底想做什么?您试图解决的问题是什么?connect.inc.php文档用于什么?另外,要处理include,是否必须包括start session命令?感谢
connect.inc.php
仅包含db connect命令,从而生成一个包含db会话的变量
start_session()
只有在使用
$\u session['varname']
服务器端变量时才需要在页面上。请注意,
$\u SESSION
变量与数据库会话无关-坦率地说,这个变量的名字很傻,但他们当时没有问我。经过一个月的尝试,非常感谢!
example.com
    - css
        styles.css
        bootstrap.min.css
    - js
        index.js
        jquery.min.js
        bootstrap.min.js
    - img
        logo.jpg
        pic1.jpg
        pic2.jpg
        another_pic.jpg
    - inc
        connect.inc.php
        head.inc.php
        header.inc.php
        footer.inc.php
        nav.inc.php
    index.php
    about.php
    history.php
    positions.php
<?php
    session_start();
    include 'inc/connect.inc.php';
    //Any more PHP instructions here
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>My Soccer Website</title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="description" content="A description of my website goes here" />
    <meta name="keywords" content="soccer, football, hooligans, beer, beckham, stadium, scalpers" />
    <meta name="robots" content="index,follow" />

    <link rel="icon" type="image/png" href="img/favicon.png?v=2" />
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

    <link rel="stylesheet" type="text/css" href="css/index.css" />

    <link href="http://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet" type="text/css">
    <link href="http://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css">
</head>