环境常量 CodeIgniter 默认使用 $_SERVER[‘CI_ENVIRONMENT’] 的值作为 ENVIRONMENT 常量,否则默认就是 ‘production’。...使用这个常量,除了会影响到一些基本的框架行为外(见下一章节),在开发过程中你还可以使用常量来区分当前运行的是什么环境。...这些文件包含你想为你的环境所做的符合要求的任何定制,无论是更新对错误显示的设置,还是加载附加开发工具,或者是添加其他东西。系统会自动加载这些文件。...在新的版本中为你创建好了以下文件: * development.php * production.php * testing.php 默认框架行为的影响 CodeIgniter 系统中有几个地方用到了...错误报告 将 ENVIRONMENT 常量值设置为 ‘development’,这将导致所有发生的 PHP 错误在客户端请求页面时显示在浏览器上。
二、跨域问题 由于浏览器的 同源策略 限制,使用前后端分离的模式下,前端和后端的域名一般都不是一样的,在我的项目中,前端是使用二级域名,而后端是使用三级域名,此时前后端就不同源了,就产生了跨域问题。...三级域名 CodeIgniter4 三、解决方法 1.问题 在前端往后端发送请求时,控制台会输出跨域报错,无法拿到数据。...此时控制台会显示Access-Control-Allow-Origin不包含当前发送请求页面的相关提示。...php namespace App\Filters; use CodeIgniter\HTTP\RequestInterface; use CodeIgniter\HTTP\ResponseInterface...使用 自定义请求头 时,前端(客户端浏览器)会先发出一个OPTIONS请求,来判断是否可用,如果这时候没有进行设置的话,同样也是无法完成跨域的。
处理 HTTP 请求 为了充分地使用 CodeIgniter,你需要对 HTTP 请求和响应的工作方式有基本的了解。对于所有想要成功的开发者来说, 理解 HTTP 背后的概念是 必须 的。...HTTP 请求 当客户端(浏览器,手机软件等)尝试发送 HTTP 请求时,客户端会向服务器发出一条文本消息然后等待响应。...HTTP 响应 服务器收到请求后,你的 web 应用程序会处理这条信息然后输出一些响应结果。服务器会将你的响应结果打包为对 客户端的的你的响应结果打包为对客户端的响应的一部分。...对 HTTP 请求和响应的处理 虽然 PHP 提供了与 HTTP 请求和响应进行交互的原生方式,但 CodeIgniter 像大多数框架一样,将它们抽象化,让你拥有一个 一致、简单的接口。...isAJAX() 和 isSecure() 函数会自动检查几种不同的 method 来 最后确定正确的答案。
本教程将主要关注: 模型-视图-控制器基础知识 路由基础 表格验证 使用“查询生成器”执行基本数据库查询 整个教程分为几页,每页仅解释CodeIgniter框架功能的一小部分。...Pages 类继承自 CodeIgniter\Controller 类,这意味着它可以访问 CodeIgniter\Controller 类 (system/Controller.php) 中定义的方法和变量...和其他的 PHP 类一样,可以在你的控制器中使用 $this 来访问它。 现在,你已经创建了你的第一个方法,是时候创建一些基本的页面模板了。...如果不存在,会显示 "404 Page not found" 的错误页面。 此事例方法中,第一行用以检查界面是否存在,file_exists() 是原生的 PHP 函数,用于检查某个文件是否存在。...在你的浏览器中输入 [your-site-url]index.php/pages/view 来查看你的页面。
如果你打算使用数据库,使用文本编辑器打开 application/Config/Database.php 并配置你的数据库设置。...为了最大程度地保证安全性,系统目录以及任何应用程序的目录都在网站根目录之上,这样就无法通过浏览器直接访问到它们。...如果你这样做,记住最好打开你的主 index.php 文件并将 $system_path,$application_folder 和 $view_folder 变量设置为全路径,例如:/www/MyUser...在生产环境中所要做的一个额外操作是禁用 PHP 错误报告以及其它任何仅开发时所使用的功能。在 CodeIgniter 中,可以通过设置 ENVIRONMENT 常量来完成。...如果要使用提供的调试工具,你需要将环境设置为 "develop"。 就是这样! 如果你是 CodeIgniter 新手, 请阅读用户指南的 入门 部分,开始学习如何构建静态 PHP 应用程序。
Forp是轻量级的PHP扩展,它提供了一个简单的PHP数组或JSON输出,其包含了完整的脚本调用堆栈和CPU和内存使用情况。forp是非侵入性,并提供PHP注释来完成工作。...PHP Debug Bar Debug可以很容易的集成到任何项目中,并能显示来自应用任何部分的分析数据。它来自于PHP内置数据收集器的特性和受欢迎的项目。...这个类很像PS、GIMP一类的图像编辑软件:你可以添加许多层或层组,每一层都有一个背景图像。...CodeIgniter CodeIgniter是一个强大的、开源的PHP框架。...它的目标是迅速,安全,和轻量。 Sabberworm 用PHP编写的一个CSS文件解析器。Sabberworm允许提取CSS文件到一个数据结构,操纵结构和输出(优化的)CSS。
本篇着眼于如何结合Codeigniter的使用,来加速前端的性能。 1、第一条是使用Gzip。...扩展: 打开这个选项后,实际上我们只能压缩PHP脚本输出的部分,而现在网站中的CSS和JS文件也不小,所以对这一部分进行压缩也是比较必要的。...另外,试验中发现,如果 apache 服务器以 FastCGI 的方式来解析 PHP,上面这种设置会失效。具体的原因和解决方法还没找到相应的资料。...实际上对于浏览器来说,解析和执行这些文件是不要保留这些格式的,因此对JS和CSS文件进行一些压缩的处理就可以达到减少文件尺寸的目的。...4、设置过期的头信息 在Codeigniter中,可以通过调用 $this->output->set_header(); 来设置头信息。从而控制浏览器如何决定来处理已经被缓存的内容。
php class blog extends \CodeIgniter\Controller { } 另外,一定要确保你的控制器继承了父控制器类,这样它才能使用父类的方法。...另一种显示 “Hello World” 消息的方法是: example.com/index.php/blog/index/ URI 中的第二段用于决定调用控制器中的哪个方法。...这个参数可以使用 PHP 的 call_user_func_array() 函数来模拟 CodeIgniter 的默认行为。.../index.php/blog/utility/ 将控制器放入子目录中 如果你正在构建一个比较大的应用,那么将控制器放到子目录下进行组织可能会方便一点。...默认控制器在 application/Config/Routes.php 中定义。 你也可以使用 CodeIgniter 的 .
参数二:输出的二维码图片文件。...参数三:容错率(分别是L、M、Q、H) 参数四:生成图片大小(1-10) 参数五:二维码周围边框空白区域间距值 参数六:是否保存二维码并显示 二、把下载好的压缩包解压,并名为QRcode,并拷贝到...然后我们在应用程序目录的Common模块下Common/function.php创建一个公共方法,用于生成二维码。...入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。...希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
数据库 和 ORM CodeIgniter 有一个自带的库 Active Record 能够帮助你在不使用 SQL 语句的情况下写查询语句。...在客户端你能够通过单独发送HTTP头部使浏览器缓存页面来提高性能,当你使用 AJAX 的时候你也需要了解它来禁止浏览器缓存。...CodeIgniter的文件结构 cache用以存储缓存文件,codeigniter文件夹包含了CI的基类CI_Base,为了兼容php4和php5,CI_Base有两个版本,其中php4版本的CI_Base.../codeigniter.php里。...codeigniter.php一上来就引入了三个文件:Common.php,Compat.php和config/constants.php,其中Common里包含了一些函数,用于载入类库的load_class
定义在PHP中,resource是一种特殊的数据类型,用于表示对外部资源的引用。外部资源可以是文件、数据库连接、网络套接字、图像资源等等。...创建图像资源$image = imagecreate(200, 200);上面的代码创建了一个200x200像素的空白图像,并返回一个指向该图像的资源标识符。..."";}mysqli_close($conn);上面的代码执行了一个查询,从一个MySQL数据库中获取所有客户的姓名和电子邮件地址,并将它们输出到屏幕上。最后,我们关闭了数据库连接。3....,绘制了一个红色的矩形和一段蓝色的文字,并将图像输出到浏览器上。...在PHP中,可以使用try-catch语句来捕获异常并进行错误处理。
注意:由于采用中文表示方式会导致IE9下通过行距实现垂直居中的失效(还有其他兼容性问题),因此建议使用英文或unicode表示方式。 5....其实还有其他分辨率的分类,如图像分辨率(就是解析度)、位分辨率(就是颜色位深)和设备分辨率(或输出分辨率,就是DPI)等等。 1. ...显示分辨率(屏幕分辨率) 表示屏幕图像的精密度,可视区域尺寸相同的前提下,分辨率越高图像越清晰。...指图像中存储的信息量,除了PPI还有PPC(每厘米的像素数量)来衡量。图像分辨率决定图像输出的质量,图像分辨率、位分辨率和图像尺寸一起决定文件大小。...设备分辨率/输出分辨率 表示单位英寸中包含的点数量(Dots Per Inch)。作用与图像分辨率是一样的。只不过是屏幕使用PPI作单位,而打印机、扫描仪等则采用DPI作单位而已。
错误处理 CodeIgniter 通过 SPL collection 和一些框架内自定义异常来生成系统错误报告。...它会暂停当前脚本的执行,并将捕获到的异常发送到错误处理程序后显示适当的错误提示页 throw new \Exception("Some message goes here"); 如果你调用了一个可能会产生异常的方法...在这个样例中,脚本终止并输出了 UserModel 定义的错误信息。 在这个例子中,我们可以捕捉任意类型的异常。...这样一来,其它异常和非监视类型子类的异常都会被传递给错误处理程序 catch (\CodeIgniter\UnknownFileException $e) { // do something...当异常被抛出时,系统将显示后面的错误模板 /application/views/errors/html/error_404.php。你应为你的站点自定义所有错误视图。
本文实例分析了CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患。...分享给大家供大家参考,具体如下: php CI框架中URL特殊字符有很多是不支持的,导致像c++,括号这些常用的分类,字符都无法正常显示很头痛,而在配置里增加单引号’ 反斜杠\ 这种特殊字符又很容易给sql...AR类进行数据库查询是比较靠谱的,因为在底层会帮助使用者进行一次有效的转义,但也仅仅是转义而已。...xx 由于数组的$key过滤不严直接带入SQL查询的漏洞屡见不鲜: $arr = array( 'name'= "2' and 1=2", "hello'"= "2"); ); 输出结果: Array...框架的PHP程序设计有所帮助。
output类中的_display_cache函数 post_system最终渲染页面发送到浏览器之后,浏览器接受完最终数据的系统执行末尾调用 10.公共函数 ci使用了一些全局定义的函数,在任何情况下都可以使用...: application/errors/error_general.php 可选参数 $status_code 决定在显示错误的同时将会发送哪种 HTTP 状态代码。...,可以使用1/60表示精确到1s 由于CI存储缓存文件的方式,只有通过 view 文件的输出才能被缓存 在缓存文件产生之前,请确保 application/cache 文件夹可写 14调试程序 激活分析器...DIR_READ_MODE,FOPEN_READ_WRITE等等 8.载入多个视图,只需要在第一个视图传入数据就可以 9.辅助函数中的函数名最好做好命名规范,如果同时加载多个辅助函数文件,且其中有名称相同的函数,会导致...CI 出现空白页问题(也就是 PHP 语法错误)。
例如,你可能决定开始使用存储库模式和实体模型来处理数据。在这种情况下,你可以将Models目录重命名为 Repositories,并添加新Entities目录。...public public 文件夹包含 Web应用程序的浏览器可以直接访问的地址,防止源代码的直接访问。...它包含主要的 .htaccess 文件,index.php 以及其它你想要添加的样式文件地址,比如CSS,javascript或图像。...包括用于存储缓存文件,日志和任何用户可能发送使用的目录。你可以在此处添加应用程序需要写入的任何其他目录。这允许你将其他主目录保持为不可写,作为附加的安全措施。..._support 目录包含各种模拟类和其他在编写测试时可以使用的实用程序。该目录请在生产环境中忽略提交/传输到生产环境中。 docs 此目录包含 CodeIgniter4 用户指南的本地副本。
touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。...手指按住屏幕上拉,底部多出一块白色区域。安卓无此特性。 在 iOS 中,手指按住屏幕上下拖动,会触发 touchmove 事件。...,即在地址最后增加一个参数,微信中显示空白。...经排查,原因如下: 原来是缓存导致的,因其#号后的参数等都被忽略,那么#以前的URL在授权前和授权后一致,其不再发送网页请求去重新获取而是直接读取缓存。...解决方法: 刷新需要跳转到的URL,可使用PHP的Header跳转,默认header是不刷新的。
= FALSE; $config[‘sess_match_useragent’] = TRUE; $config[‘sess_time_to_update’] = 300;//5分钟更新一次 购车使用参考...:http://codeigniter.org.cn/user_guide/libraries/cart.html 3.配置类 主要配置文件application/config/config.php,...$this->output->set_output();重要:使用这个方法有一点很重要,就要将它放在最后一句 $this->output->set_header();设置发送到浏览器http协议的标头...reduce_multiples()去掉多余的一个紧接着一个重复出现的特殊字符 strip_quotes()去掉字符串中的单引号和双引号 quotes_to_entities()将字符串中的单引号和双引号转换为相应的...HTML 字符表示 13.文本辅助函数 highlight_code()对一段代码着色 highlight_phrase()对字符串的一个短语进行突出显示 14URL辅助函数 $this->load
请不要启用旧版主题或其他主题,该操作会导致当前主题配置项完全丢失! 另外,如果该功能提示服务器环境无法进行在线更新,则可以手动对主题和插件进行更新。 2....显示文章目录树 字段名:showTOC 1.7.2 及以上版本请使用「显示文章目录树」设置。 为当前文章生成目录树,目录树按钮会显示在文章右侧屏幕边缘(需1.6.0及以上版本)。值为1时生效。...该效果依赖图片加载动画功能,浏览器端仅需要加载 64 像素的小图片即可,图片处理在浏览器端进行。...需要注意的是,过多的菜单栏会导致在较小宽度的浏览器下菜单一行显示不下而折行的问题,因此该值不建议修改。...衬线体对屏幕和渲染引擎的要求较高,但经测试,在低分屏 Windows 的主流浏览器(Chrome)上效果可以接受。
pre: 用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字超出边界时不换行。...像素px是相对于显示器屏幕分辨率而言的。 em:em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。 ...对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。...像素px是相对于显示器屏幕分辨率而言的。 em:em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。 ...对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明。这些浏览器会忽略用rem设定的字体大小。
领取专属 10元无门槛券
手把手带您无忧上云