PHP에서 텍스트를 발견하면 함수 출력이 필요합니까?
제가 작성한 템플릿 클래스는 다음과 같습니다.
<?php
/** * User: 火蜥蜴制作 */ namespace Core; // 模板类 class Template { private $data = []; private $path = ''; // 模板路径 public function __construct() { $this->path = Config::get('project.template_path'); } /** * 模板赋值 * @param $key * @param $value */ public function assign($key, $value) { if(is_array($key)) { $this->data = array_merge($this->data, $key); } else { $this->data[$key] = $value; } } /** * 获取路径 * @param $file */ private function getFilePath($file) { $params = explode('.', $file); // 模板路径已经加了分隔符 $path = ROOT . DIRECTORY_SEPARATOR . $this->path; foreach ($params as $key => $param) { if($key == count($params) - 1) { $path .= $param; } else { $path .= $param . DIRECTORY_SEPARATOR; } } return $path . '.html'; } public function display($file) { if(empty($file)) { throw new \Exception("Template Can Not Be Empty"); } $realPath = $this->getFilePath($file); if(is_file($realPath)) { extract($this->data); require($realPath); } else { throw new \Exception("Template:<code>{$realPath}
Not Found"); } } }답글 내용:
PHP에서 텍스트를 발견하면 함수 출력이 필요합니까?
제가 작성한 템플릿 클래스는 다음과 같습니다.
<?php/** * User: 火蜥蜴制作 */ namespace Core; // 模板类 class Template { private $data = []; private $path = ''; // 模板路径 public function __construct() { $this->path = Config::get('project.template_path'); } /** * 模板赋值 * @param $key * @param $value */ public function assign($key, $value) { if(is_array($key)) { $this->data = array_merge($this->data, $key); } else { $this->data[$key] = $value; } } /** * 获取路径 * @param $file */ private function getFilePath($file) { $params = explode('.', $file); // 模板路径已经加了分隔符 $path = ROOT . DIRECTORY_SEPARATOR . $this->path; foreach ($params as $key => $param) { if($key == count($params) - 1) { $path .= $param; } else { $path .= $param . DIRECTORY_SEPARATOR; } } return $path . '.html'; } public function display($file) { if(empty($file)) { throw new \Exception("Template Can Not Be Empty"); } $realPath = $this->getFilePath($file); if(is_file($realPath)) { extract($this->data); require($realPath); } else { throw new \Exception("Template:<code>{$realPath}
Not Found"); } } }
require
은 함수가 아닙니다
require
의 기능은 파일 이름으로 다음 문자열을 사용하는 것입니다. 파일 확장자가.php
인지 여부에 관계없이 해당 파일은 PHP 프로그램으로 간주되어 현재 프로그램에 도입됩니다. 달리다.php 프로그램이
<?php
,?>
으로 래핑되지 않으면 바로 출력됩니다.
require
은 접미사가 무엇이든 관계없이 참조된 파일을 PHP 파일로 실행합니다(접미사는 허용되지 않음). 일부 PHP 트로이 목마는 방화벽을 우회하기 위해 이를 사용합니다.<?php
과?>
사이에 PHP 코드를 넣어야 실행됩니다.
게 악마.
파일이 포함되면 파서는 PHP 모드를 종료하고 대상 파일의 시작 부분에서 HTML 모드로 들어갔다가 파일 끝에서 다시 시작됩니다. 이러한 이유로 PHP 코드로 실행되어야 하는 객체 파일의 모든 코드는 유효한 PHP 시작 및 종료 태그 내에 포함되어야 합니다.
include
또는requrie
이 파일인 경우, 파일에서 php 시작 태그와 종료 태그<?php ?>
가 없는 위치는 html로 파싱됩니다.