Erfordert das PHP eine Funktionsausgabe, wenn es auf Text stößt?
Dies ist die Vorlagenklasse, die ich geschrieben habe:
<?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"); } } }Antwortinhalt:
Erfordert das PHP eine Funktionsausgabe, wenn es auf Text stößt?
Dies ist die Vorlagenklasse, die ich geschrieben habe:
<?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"); } } }
- Die Funktion von
require
ist keine Funktion
require
besteht darin, die folgende Zeichenfolge als Dateinamen zu verwenden. Unabhängig davon, ob die Dateierweiterung.php
ist, wird die Datei als PHP-Programm betrachtet und in das aktuelle Programm eingeführt laufen.Wenn das PHP-Programm nicht mit
<?php
und?>
umschlossen ist, wird es direkt ausgegeben.
require
führt die referenzierte Datei als PHP-Datei aus, unabhängig vom Suffix (kein Suffix ist akzeptabel). Einige PHP-Trojaner verwenden dies, um Firewalls zu umgehen.
PHP-Code muss zwischen<?php
und?>
platziert werden, um ausgeführt zu werden.
Krabbendämon.
WennWenn eine Datei eingebunden wird, verlässt der Parser den PHP-Modus und wechselt am Anfang der Zieldatei in den HTML-Modus und fährt am Ende der Datei fort. Aus diesem Grund muss jeder Code in einer Objektdatei, der als PHP-Code ausgeführt werden muss, in gültigen PHP-Start- und End-Tags enthalten sein.
include
oderrequrie
eine Datei ist, werden die Positionen in der Datei, die keine PHP-Start-Tags und End-Tags<?php ?>
haben, als HTML geparst.