大家好我有一个在codeigniter中开发的网站,我想存储到一个名为common.php的文件中,我在很多页面中使用了一些javascript / PHP函数。 我试过这种模式:
require(base_url().'application/libraries/common.php'); //I have tried also include
这回复了我这个错误:
A PHP Error was encountered
Severity: Warning
Message: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0
我要去我的php.ini,然后打开allow_url_include,重新启动apache,当我尝试加载页面时,现在返回给我错误:
A PHP Error was encountered
Severity: Warning
Message: require() [function.require]: http:// wrapper is disabled in the server configuration by allow_url_include=0
Filename: backend/hotel_view.php
Line Number: 6
A PHP Error was encountered
Severity: Warning
Message: require(http://demo.webanddesign.it/public/klikkahotel.com/application/libraries/common.php) [function.require]: failed to open stream: no suitable wrapper could be found
Filename: backend/hotel_view.php
Line Number: 6
Fatal error: require() [function.require]: Failed opening required 'http://demo.webanddesign.it/public/klikkahotel.com/application/libraries/common.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/public/klikkahotel.com/application/views/backend/hotel_view.php on line 6
如何将简单文件添加到我的网页中?
答案 0 :(得分:32)
使用$this->load->view('common');
将其拉入您想要的任何视图中。您可以从控制器或视图中包含其他视图。
示例1
your_controller.php
public function index() {
$this->load->view('homepage');
}
视图/ homepage.php
<?php
$this->load->view('common');
?>
<body>
<!-- html -->
</body>
示例2
your_controller.php
public function index() {
$this->load->view('common');
$this->load->view('homepage');
}
答案 1 :(得分:2)
您应该使用APPPATH
或BASEPATH
或只输入文件的完整路径。
为了安全起见,require_once
应该传递本地文件,而不是URL。我不建议在CodeIgniter中使用require_once()
。最好使用:
$this -> load -> view('common_file');
答案 2 :(得分:2)
要创建全局功能,请在 CodeIgnitor Helper 文件中定义它们,然后自动加载。以下是:
要创建[helpers] [2],请在application/helpers/
文件夹中创建一个.php文件,并在那里保存您的功能。
注意:最好使用以下格式,以避免函数名称冲突:
if ( ! function_exists('my_function_name'))
{
function my_function_name($arg)
{
/* Your code here */
}
}
如果您一直使用这些功能(全局),请自动加载它们。
/config/autoload.php
$autoload['helper'] = array();
例如,如果您创建了一个名为myhelper.php的帮助文件,它应该如下所示:
$autoload['helper'] = array('myhelper');
现在您的功能将在整个网站上提供。只需称它们为批发商:
my_sample_function('argument');
答案 3 :(得分:1)
base_url()
指的是http://localhost/myproject/
之类的网络路径。您不能包含远程文件,实际上您不应该包含远程文件。这是一个安全风险。请参阅Can't include file on remote server
构建自定义库是一个不错的选择,如果您在网站中大量使用它,可以在application/config/autoload.php
下的$autoload['libraries']
部分中添加它。每次重新加载基于codeigniter的应用程序/网站时,它都会自动加载。示例:$autoload['libraries'] = array('common');
如果您的资源库名为common.php
并且位于application/libraries/
不要将函数放入查看器中,这就是库和帮助程序存在的原因。查看器应仅包含用户应该看到的内容。示例:视图是模型的某种可视化形式。
答案 4 :(得分:1)
您应该使用APPPATH或BASEPATH或只输入文件的完整路径。 require_once(APPPATH.'libraries/common.php');
答案 5 :(得分:0)
为了更有效地解决这个问题我已经这样做了:
您使用名称创建一个新的帮助程序(在应用程序/帮助程序中)(例如,common.helpers.php,下划线很重要)。在此文件中,您将所有函数(例如,html的构建部分)放在一起。
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function getHead(){
require_once(APPPATH."views/common/head.php");
}
function getScripts(){
require_once(APPPATH."views/common/scripts.php");
}
function getFooter(){
require_once(APPPATH."views/common/footer.php");
}
在你的控制器中,你只调用一个关于MVC的视图,并从你的自定义助手调用这些函数。
class Hello extends CI_Controller {
public function index(){
$this->load->helper('common');
$this->load->view('index');
}
}
答案 6 :(得分:0)
您可以使用
包含任何软件<?php $this->load->view('file'); ?>
答案 7 :(得分:-2)
你可以在帮助文件中编写php函数
步骤 - 在common_helper
文件夹中创建帮助文件名application/helper
- 并创建一个像
function getBoosters($id){
$ci=& get_instance();
$ci->load->database();
$sql = "select * from boosters where id ='".$id."' ";
$query = $ci->db->query($sql);
return $query->result();
}
这个常用功能可以通过加载此帮助程序来使用。
假设您想在FrontController中使用此方法,只需通过此行
加载帮助程序$this->load->helper('common');
现在您可以调用该方法。在footer.php
中添加您的js代码,所有功能都可以在您可以轻松使用的每个页面上使用