PHP 致命错误:调用未定义的函数?

Nic*_*man 2 php web-hosting function undefined

因此,当我在我的网络主机上托管网站时,我的网站出现了问题。我收到这个错误:

PHP Fatal error:  Call to undefined function getSkillIcons()
Run Code Online (Sandbox Code Playgroud)

奇怪的是,在本地(Xampp)它工作得很好。

这就是我包含该函数的方式(在index.php中):

<?php include 'http://sub.website.com/incl/Settings.php'; ?>
Run Code Online (Sandbox Code Playgroud)

这就是我称之为的地方(index.php):

<div class="panel-body" style="text-align:center">
<?php getSkillIcons(explode(',', skills)); ?>
</div>
Run Code Online (Sandbox Code Playgroud)

这就是我定义技能的方式(settings.php)

define("skills", "Test1,Test2,Test3,Test4");
Run Code Online (Sandbox Code Playgroud)

这是函数本身:(settings.php)

function getSkillIcons($skills) {
    echo '<a href="?skill=Overall" title="Overall" data-toggle="tooltip"            data-placement="top"><img src="http://sub.website.com/incl/img/skill_icons/Overall-icon.png" class="skill-icon"></a>';
    for ($i = 0; $i < count($skills); $i++) {
        $tooltip = 'title="'.$skills[$i].'" data-toggle="tooltip" data-placement="top"';
        echo '<a href="?skill='.$skills[$i].'" '.$tooltip.'><img src="http://sub.website.com/incl/img/skill_icons/'.$skills[$i].'-icon.png" class="skill-icon"></a>';
    }
Run Code Online (Sandbox Code Playgroud)

Ami*_*pta 5

调用未定义的函数错误清楚地表明它没有在您定义的位置获取您的函数。原因是您正在附加settings.php文件的完整路径http

您需要在“index.php”顶部包含settings.php没有路径的文件,并确保文件仅位于您的项目中。如果它与 位于同一文件夹中,则只需包含如下内容即可。httpsettings.phpindex.php

<?php include __DIR__.'/settings.php'; ?> 
Run Code Online (Sandbox Code Playgroud)

如果您的settings.php文件位于其他文件夹中,则可以使用 $_SERVER['DOCUMENT_ROOT'] 包含该文件,如下所示:

<?php 
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/yourpath/settings.php";
include_once($path);
Run Code Online (Sandbox Code Playgroud)