![]() CodeIgniter 面试问题2025年3月17日 | 阅读 10 分钟 以下是经常被问到的 CodeIgniter 面试问题 和答案的列表。 1) 什么是 CodeIgniter?CodeIgniter 是一个用于开发 PHP Web 应用程序的开源且强大的框架。它基于 MVC 模式,类似于 Cake PHP。 CodeIgniter 包含库、简单的界面和逻辑结构来访问这些库、插件、助手和一些其他资源,这些资源可以更轻松地解决 PHP 的复杂功能,同时保持高性能。它简化了 PHP 代码,并以更短的时间带来了完全交互式、动态的网站。 更多细节。2) CodeIgniter 的最突出特性是什么?CodeIgniter 的最突出特性列表
3) 解释 CodeIgniter 的文件夹结构。如果您下载并解压缩 CodeIgniter,您将获得以下文件结构/文件夹结构 应用
system
![]() 更多细节。 4) 解释 CodeIgniter 架构。从技术角度来看,CodeIgniter 是动态实例化(轻量级)、松耦合(组件之间相互依赖很少)并且具有组件单例(每个类和函数都专注于它们的目的)。 CodeIgniter 中的数据流![]() 更多详情。 5) 解释 CodeIgniter 中的 MVC。CodeIgniter 框架基于 MVC 模式。 MVC 是一种软件,它为您提供与表示视图分离的逻辑视图。 因此,网页包含最少的脚本。
![]() 更多详情。 6) 解释 CodeIgniter 中的模型。模型负责处理所有数据逻辑和表示,并在视图中加载数据。它存储在 application/models 文件夹中。 模型文件的基本结构![]() 在这里,ModelName 是你的模型文件的名称。记住,类的第一个字母必须是大写字母,后面跟着其他小写字母,并且它应该与你的文件名相同。它扩展了基本的 CodeIgniter 模型,以便将父模型文件的所有内置方法继承到新创建的文件中。 更多详情。7) 如何在 CodeIgniter 中添加或加载模型?要在控制器函数中加载模型,请使用以下函数 如果你的模型文件位于模型文件夹的子目录中,那么你必须提及完整的路径。例如,如果你的文件位置是 application/controller/models/project/ModelName。那么,你的文件将被加载如下, 8) 如何手动将模型连接到数据库?要手动连接数据库,请使用以下语法, 更多详情。9) 解释 CodeIgniter 中的视图。视图文件夹包含所有标记文件,如页眉、页脚、侧边栏等。它们可以通过嵌入在控制器文件的任何地方来重用。它们不能直接调用,它们必须在控制器的文件中加载。 视图语法创建一个文件并将其保存在 application/views 文件夹中。 例如,我们创建了一个文件 Firstview.php, ![]() 更多详情。 10) 如何在 CodeIgniter 中加载视图?视图不能直接访问。它总是在控制器文件中加载。以下函数用于加载视图页面 在括号中写入视图的页面名称。 除非您使用其他扩展名,否则不需要指定 **.php**。 现在,转到您的控制器文件 **(Main.php)** 并编写如下代码。 ![]() 更多详情。 11) 解释 CodeIgniter 中的控制器。控制器是模型和视图之间的中介,用于处理 HTTP 请求并生成网页。它是你的 Web 应用程序中每个请求的中心。 考虑以下 URI, 在这个 URI 中,CodeIgniter 尝试查找 Front.php 文件和 Front 类。 控制器语法![]() 查看上面的快照,控制器的文件名是 Main.php (第一个字母必须是大写),类的名称是 Main (第一个字母必须是大写)。 更多详情。12) CodeIgniter 中的默认控制器是什么?默认加载的默认控制器中指定的文件,当 URL 中没有提到文件名时。默认情况下,它是 welcome.php,这是安装 CodeIgniter 后看到的第一个页面。 使用 URL 由于 URL 中未提及文件名,因此将加载 Welcome.php。 但是,根据你的需要,你可以在文件 application/config/routes.php. 中更改默认控制器。 在这里,指定您希望默认加载的文件名。 更多详情。13) 你将如何在 CodeIgniter 中调用构造函数?要使用构造函数,你需要提及以下代码行, 更多详情。14) CodeIgniter 的基本 URL 结构是什么?它不是使用“查询字符串”方法,而是使用基于段的方法。 它的结构如下, class 代表需要调用的控制器类。 function 是被调用的方法。 ID 是传递给控制器的附加段。 15) CodeIgniter 的抑制器是什么?在 CodeIgniter 中,抑制器是一个错误处理程序类,它使用本地 PHP 函数,如 set_exception_handler、set_error_handler、register_shutdown_function 来处理解析错误、异常和致命错误。 16) CodeIgniter 中的默认方法名称是什么?默认情况下,控制器总是调用 index 方法。如果你想调用不同的方法,那么把它写在控制器的文件中,并在调用该函数时指定它的名称。 ![]() 查看 URL。没有提及方法名称。因此,默认情况下加载 index 方法。 更多详情。17) 解释 CodeIgniter 中重新映射的方法调用。URI 的第二段确定要调用的方法。如果你想覆盖它,你可以使用 _remap() 方法。即使 URI 不同,_remap 方法也会被调用。它会覆盖 URI。例如 更多详情。18) CodeIgniter 中的助手是什么?如何加载助手文件?助手是一组用于帮助用户执行特定任务的函数。 URL 助手: 用于创建链接。 文本助手: 用于文本格式化。 Cookie 助手: 用于读取和设置 cookie。 更多细节。19) 如何加载多个助手文件?要加载多个助手文件,请在数组中指定它们, 更多详情。20) 解释 CodeIgniter 库。你将如何加载它?CodeIgniter 提供了丰富的库。它是 CodeIgniter 的一个重要组成部分,因为它提高了应用程序的开发速度。它位于 system/library 中。 可以按如下方式加载它, 更多详情。21) 你如何在 CodeIgniter 中创建库?创建库有三种方法:
22) 新创建的库存储在 CodeIgniter 结构中的哪里?它应该放在 application/libraries 文件夹中。 更多详情。23) 你可以在 CodeIgniter 中扩展原生库吗?是的,我们可以通过添加一两个方法来为原生库添加一些扩展功能。它会用你的版本替换整个库。因此,最好扩展类。扩展和替换几乎是相同的,只是有以下例外。
例如,要将其扩展到原生日历,请在 application/libraries 文件夹中创建一个名为 MY_Calendar.php 的文件。你的类声明为 class MY_Calendar extends CI_Calendar} 更多详情。24) 你如何在 CodeIgniter 中扩展类?你必须构建一个名为 application/core/MY_Input.php 的文件,并使用 Class MY_Input extends CI_Input {} 声明你的类,以扩展 CodeIgniter 中的原生输入类。 25) CodeIgniter 中的路由是什么?路由是一种你可以根据需求定义 URL 的技术,而不是使用预定义的 URL。路由可以分为两种方式,要么使用通配符,要么使用正则表达式。 通配符有两种类型的通配符
正则表达式正则表达式也用于重定向路由。 你可以创建自己的正则表达式来运行你的 URL。 更多细节。26) 为什么需要配置 URL 路由?配置 URL 路由有很多目的。
27) CodeIgniter 中的钩子是什么?钩子是 CodeIgniter 中的一项功能,它提供了一种在不破坏核心文件的情况下更改框架内部工作的方式。它方便你使用 CodeIgniter 中的特定路径执行脚本。通常,它是在 application/config/hooks.php 文件中定义的。 更多细节。28) 如何启用 CodeIgniter 钩子?要启用钩子,请转到 application/config/config.php/ 文件并将其设置为 TRUE,如下所示, 更多详情。29) CodeIgniter 中不同类型的钩子点有哪些?CodeIgniter 中不同类型的钩子点列表
30) 什么是 CodeIgniter 驱动程序?这些是一种特殊的库,它有一个父类和许多子类。这些子类可以访问父类,但不能访问它们的同级类。驱动程序位于 system/libraries 文件夹中。 更多详情。31) 如何在 CodeIgniter 中初始化驱动程序?要初始化驱动程序,请编写以下语法, 在这里,class_name 是驱动程序名称。 更多详情。32) 如何在 CodeIgniter 中创建驱动程序?创建驱动程序有三个步骤
33) 如何在 CodeIgniter 中连接多个数据库?要同时连接多个数据库,请执行以下操作: 更多详情。34) 如何在 CodeIgniter 模型中打印 SQL 语句?35) CodeIgniter 的安全方法是什么?CodeIgniter 的安全方法有助于创建安全的应用程序并处理输入数据。以下是这些方法:
36) 什么是 XSS 安全参数?XSS 代表跨站脚本攻击。Codeigniter 包含一个跨站脚本攻击预防过滤器。XSS 过滤器针对触发 JavaScript 或其他类型的可疑代码的方法。如果它检测到任何内容,它会将数据转换为字符实体。 XSS 过滤使用 xss_clean() 方法来过滤数据。 有一个可选的第二个参数 is_image,用于测试图像是否存在 XSS 攻击。当此参数设置为 TRUE 时,它不会返回修改后的字符串。相反,如果图像是安全的,则返回 TRUE,如果它包含恶意信息,则返回 FALSE。 更多细节。37) 如何防止 CodeIgniter 受到 CSRF 攻击?有多种方法可以防止 CodeIgniter 受到 CSRF 攻击。最常用的方法是在网站的每个页面中使用隐藏字段。隐藏字段存储在用户的会话中。该字段随每个 HTTP 请求而改变。可以在用户的每次对网站的请求中检测到用户。隐藏值始终与会话中保存的值进行比较。如果相同,则请求有效。 更多细节。38) 如何启用 CSRF?您可以通过编辑 config.php 文件并将其设置为来启用保护 要启用CSRF,请在application/config/config.php文件中将以下语句从FALSE更改为TRUE。 更多细节。39) CodeIgniter 中的 CSRF 攻击是什么?CSRF攻击会强制已登录受害者的浏览器发送伪造的HTTP请求,包括受害者的会话cookie和其他身份验证信息到Web应用程序。 例如,假设您有一个带有表单的网站。攻击者可以在他的网站上创建一个虚假表单。该表单可能包含隐藏的输入和恶意数据。此表单不会发送到攻击者的网站,实际上,它会发送到您的网站。认为该表单是真实的,您的网站会处理它。 现在假设攻击者的表单指向您网站上的删除表单。如果用户已登录并被重定向到攻击者的网站,然后执行搜索,他的帐户将被删除,而他却不知情。这就是 CSRF 攻击。 更多详情。40) CSRF 攻击中的令牌方法是什么?为了防止 CSRF,我们需要连接两个 HTTP 请求,表单请求和表单提交。有几种方法可以做到这一点,但在 CodeIgniter 中使用了隐藏字段,它被称为 CSRF 令牌。CSRF 令牌是一个随机值,它会随着每个发送的 HTTP 请求而变化。 对于每个请求,都会生成一个新的 CSRF 令牌。创建对象时,将设置令牌的名称和值。 其函数是: 更多详情。 |
我们请求您订阅我们的新闻通讯以获取最新更新。