So implementiert PHP die Routenverteilung: 1. Verwenden Sie die Methoden „require“ und „include“, um PHP-Dateien einzubinden. 2. Verwenden Sie den Pfad in der URL, um die entsprechende Steuerklasse abzugleichen, und rufen Sie gleichzeitig die darin enthaltenen Methoden auf, um verwandte Vorgänge zu verarbeiten.
So implementieren Sie die Routenverteilung in PHP:
1. Dateieinbindung
Es gibt zwei Möglichkeiten, Dateien in PHP einzubinden: require und include Bei Verwendung von „require“ zum Einschließen der Datei tritt ein Fehler auf. Bei Verwendung von „include“ wird ein schwerwiegender Fehler gemeldet und das PHP-Skript wird nicht mehr ausgeführt. Wenn bei der Verwendung von „include“ zum Einschließen der Datei ein Fehler auftritt, wird eine Warnung angezeigt, das PHP-Skript jedoch weiterhin ausführen. Gleichzeitig enthalten beide Methoden die entsprechende Methode xxx_once
, wodurch das Problem der „Klasse deklarieren“ vermieden werden kann. Daher versuchen wir bei der allgemeinen Verwendung der Dateieinbindung, include_once
zu verwenden, um Dateien einzuschließen. xxx_once
方法,可以避免”declare class”的问题。所以一般使用文件包含的时候我们尽量使用include_once
包含文件。
同时在关于文件包含的路径问题上,我们可以利用设置全局变量的方式,依托入口文件的绝对路径,去寻找其他路径文件。修改php.ini中的inclue_path
路径当然也是另一种方式,利用require和include包含文件,假如是相对路径的方式,首先会根据php.ini配置文件中的include_path
include_path
-Pfads in php.ini ist natürlich eine andere Möglichkeit. Verwenden Sie require und include, um die Datei einzubinden. Wenn es sich um einen relativen Pfad handelt, basiert er zunächst auf dem include_path Es wird nach den Einstellungen der php.ini-Konfigurationsdatei gesucht. <p><strong></strong>2. Routenverteilung </p>
<p></p>Die PHP-basierte Routenverteilung verwendet im Wesentlichen den Pfad in der URL, um die entsprechende Steuerklasse abzugleichen, und ruft gleichzeitig die darin enthaltenen Methoden auf, um verwandte Vorgänge zu verarbeiten. <p></p>Code ohne etwas zu sagen: <blockquote><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
// 权限控制
include_once &#39;./auth.php&#39;;
// 应用入口文件
date_default_timezone_set("Asia/Shanghai");
header(&#39;Content-type: text/html;charset=utf-8&#39;);
// 项目根路径
define(&#39;BASEPATH&#39;, dirname(__FILE__));
// 调试模式
define(&#39;APP_DEBUG&#39;, True);
// 引入配置文件
include_once BASEPATH . &#39;/config/config.php&#39;;
// 路由控制
$router = include_once BASEPATH . &#39;/config/router.php&#39;;
if ($_SERVER[&#39;HTTP_HOST&#39;] !== &#39;xxx.com&#39;) {
var_dump(&#39;当前host不被允许&#39;);
} else {
$request_path = str_replace(&#39;/index.php&#39;, &#39;&#39;, $_SERVER[&#39;PHP_SELF&#39;]);
$request_query = getCurrentQuery();
if (array_key_exists($request_path, $router)) {
$module_file = BASEPATH . $router[$request_path][&#39;file_name&#39;];
$class_name = $router[$request_path][&#39;class_name&#39;];
$method_name = $router[$request_path][&#39;method_name&#39;];
if (file_exists($module_file)) {
include $module_file;
$obj_module = new $class_name();
if (!method_exists($obj_module, $method_name)) {
die("要调用的方法不存在");
} else {
if (is_callable(array($obj_module, $method_name))) {
$obj_module->$method_name($request_query, $_POST);
}
}
} else {
die("定义的模块不存在");
}
} else {
echo &#39;页面不存在&#39;;
}
}</pre><div class="contentsignin">Nach dem Login kopieren</div></div><p><a href="https://www.php.cn/course/list/29.html" target="_blank">Verwandte Lernempfehlungen: </a>php-Programmierung<br>(Video)</p>
</blockquote>🎜
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Routenverteilung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!