안녕하세요, 내 PHP 템플릿 클래스에 문제가 있습니다. 문제는 index.php 파일을 열 때 아무것도 표시되지 않습니다. 확실하지 않지만 문제는 템플릿 클래스 template.php에 있다고 생각합니다
.
<?php
class Template {
protected $template;
protected $vars = array();
public function __construct($template){
$this->template = $template;
}
public function __get($key){
return $this->vars[$key];
}
public function __set($key, $value){
$this->vars[$key] = $value;
}
public function __toString(){
extract($this->vars);
chdir(dirname($this->template));
ob_start();
include basename($this->template);
return ob_get_clean();
}
}
?>
프론트 페이지 :
<?php include('includes/header.php'); ?>
test
<?php include('includes/footer.php'); ?>
index.php :
<?php
require 'ini.php';
$template = new Template('templates/frontpage.php');
echo $template;
?>
this.php :
<?php
session_start();
function __autoload ($class_name){
require_once('libraries/'.$class_name'.php');
}
?>
참고 : frontpage.php는 올바르게 작동합니다.
내 로컬 웹 서버에 코드를 넣고 아파치 오류 로그 (당신이해야 할 일)를 확인했고 여기에 오류가 있습니다.
PHP 구문 분석 오류 : 구문 오류, 예상치 못한 ''.php ''(T_CONSTANT_ENCAPSED_STRING) in /var/www/html/template/ini.php on line 4
문제는 다음과 같습니다.
require_once('libraries/'.$class_name '.php');
대신에
require_once('libraries/'.$class_name . '.php');
수정했을 때 또 다른 오류가 발생했습니다.
PHP 치명적 오류 : require_once () : 4 행의 /var/www/html/template/ini.php에서 필요한 'libraries / Template.php'(include_path = '. : / usr / share / php')를 열지 못했습니다.
따라서 라이브러리 디렉토리 내의 모든 클래스는 파일 이름의 첫 글자가 대문자 여야합니다.
이름 바꾸기
library / template.php
와
라이브러리 /Template.php
참고 : 다중 포함 문제를 방지하려면 "require"함수를 "require_once"로 바꿔야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다